Как ускорить переключение апстримов?

2017-09-22 Пенетрантность Eugene Chaykin

Добрый день.

Пытаюсь настроить фэйловер с помощью nginx.
У меня есть два абсолютно аналогичных апстрима.

Хочется получить балансировку нагрузки и фэйловер, если один из 
апстримов по каким-либо причинам отвалится.


Сейчас nginx у меня настроен так:

upstream cdn {
least_conn;
server 1.1.1.1:80;
server 2.2.2.2:80;
}

server {
listen 3.3.3.3:80;
server_name cdn.mysite.com;
proxy_next_upstream error timeout invalid_header http_500 http_502 
http_503 http_504;

…

Пока оба апстрима работают — всё ок, скорость загрузки страницы
примерно 0.5 сек.

Стоит выключить один из них и скорость резко падает, примерно до минуты.

Пробовал прописывать max_fails=1 fail_timeout=30s, но особого эффекта не 
ощутил.
Если в конфиге к отключенному апстриму дописать down, то всё снова 
работает быстро.


Вопрос: ЧЯДНТ и как добиться нормального фэйловера?

--
С уважением,
Евгений
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: NGX_POOL_ALIGNMENT

2017-09-22 Пенетрантность Oleg
On Thu, Sep 21, 2017 at 05:43:12PM +0300, Maxim Dounin wrote:
> On Thu, Sep 21, 2017 at 11:35:45AM +0300, Oleg wrote:
> 
> > Кто-нибудь в курсе почему NGX_POOL_ALIGNMENT равен именно 16?
> 
> Сколько-нибудь серьёзных причин к тому нет.  Одно время были 
> попытки выравнивать пулы по размеру страницы - это хорошо работает 
> на FreeBSD, где метаинформация об аллокациях храница отдельно, 
> однако плохо показало себя на Линуксе, где метаинформация хранится 
> непосредственно перед аллокацией.  В результате выравнивание было 
> уменьшено до консервативного значения 16, и с тех пор такое.

  Т.е. если выставить в 8 (sizeof(void*)), то должно быть норм, так?

-- 
Олег Неманов (Oleg Nemanov)
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru