ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: weight в upstream



On Sat, 23 Sep 2006, Sergey Serov wrote:

Есть проблемы с использованием weight в upstream в целях распределения
нагрузки.
Если вес выставлен одинаковый, то нагрузка распределяется равномерно.
Пример:
upstream test_backend {
       server localhost:59040 weight=10000;
       server other_server:59040 weight=10000;
}

Если же выставить разный вес, то нагрузка распределяется неравномерно по
времени, каждые десять минут меняется сервер и все. Сужу об этом по графикам
загрузки серверов. 10 минут все запросы идут на один сервер, затем 10 мин. на
другой.
Пример:

upstream test_backend {
       server localhost:59040 weight=10000;
       server other_server:59040 weight=5000;
}

location / {
           expires epoch;
           fastcgi_pass    test_backend;
           fastcgi_upstream_max_fails 0;
           fastcgi_next_upstream error timeout invalid_header http_500;
           include fastcgi_param.conf;
}

Но обнаружил, что если цель треть нагрузки отправлять на другой сервер, то
такое помогает:

upstream test_backend {
       server localhost:59040 weight=10000;
       server localhost:59040 weight=10000;
       server other_server:59040 weight=10000;
}

Да, сейчас алгоритм работает так: берётся вес апстрима и пока
не уменьшиться до нуля, к следующему не переходим, поэтому большие
веса неравномерно распределяют нагрузку. Я планирую в скором времени
сделать алгоритм, который бы равномерно распределял запросы.


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.