Здравствуйте. Создал балансировщик на 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