Welcome! Log In Create A New Profile

Advanced

Неравномерное распределение нагрузки upstream hash consistent

Алексей
February 14, 2021 03:48AM
Здравствуйте.

Создал балансировщик на 10 кэширующих серверов.
Использовал consistent hash по $request_uri

upstream cacheserver {

hash $request_uri consistent;

server 10.0.0.2:8080 max_fails=0;
server 10.0.0.3:8080 max_fails=0;
server 10.0.0.4:8080 max_fails=0;
server 10.0.0.5:8080 max_fails=0;
server 10.0.0.6:8080 max_fails=0;
server 10.0.0.7:8080 max_fails=0;
server 10.0.0.8:8080 max_fails=0;
server 10.0.0.9:8080 max_fails=0;
server 10.0.0.10:8080 max_fails=0;
server 10.0.0.11:8080 max_fails=0;
keepalive_requests 10000;

keepalive 64;

}

Уникальных урлов более 30 миллионов. Размер файлов примерно одинаковый.

Ожидал, что распределение нагрузки между серверами будет примерно
одинаковое. Однако отклонения достигают 23% как по трафику, так и по
объему закэшированных данных.

Поставил php реализацию библиотеки ketama, смоделировал эту ситуацию и
получил похожий результат. На тесте с десятью серверами и миллионом
ключей - отклонения до 27%.

Улучшает ситуацию увеличение количества серверов. При десятикратном
увеличении серверов отклонение составило 8%.

Для выравнивания cache hit rate по серверам скорректировал размеры кэш
зон в соответствии с реальным распределением нагрузки.

С наилучшими пожеланиями.
Алексей.

P.S.: Может быть стоит отразить эту особенность в документации.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Неравномерное распределение нагрузки upstream hash consistent

Алексей February 14, 2021 03:48AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 267
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready