соотношение балансировщиков/веб-серверов (оффтоп, но...)

Igor Sysoev is at rambler-co.ru
Thu Oct 22 23:44:46 MSD 2009


On Thu, Oct 22, 2009 at 10:12:23PM +0300, Gena Makhomed wrote:

> big bond wrote:
> 
> > Кстати, сегодня пробовали нагрузить конкурентными SSL-сессиями один из 
> > тестирумых балансировщиков, использовали программу flood_connect. Я 
> > скомпилировал её на линуксовой машине (2хXEON E5420, 2.50GHz, 4GB RAM, 
> > SUSE ENT 10.2), выжать смог максимум 16000 соединений, все 4 ядра были 
> > загружены на 100%.
> > Коллега скомпилировал на старенькой железке (P3 700MHz, 512MB RAM, 
> > FreeBSD 7.2), выжал 7500 соединений и процессор был загружен не более 
> > 80%!!!!
> > Сам балансировщик при этом тоже неплохо был загружен.
> > Как такое возможно? Старая железка отстала всего в два раза от 
> > современного неслабого сервера!
> > Запускали так: *flood_connect -S -f 10 -p 443 /адрес_балансировщика/*
> > -f - количество форков
> > -S - SSL-режим
> 
> 1. если включить ssl_session_cache -
> SSL будет работать намного быстрее.
> например:
> 
> http {
>      ssl_session_cache  shared:SSL:20M;
>      ssl_session_timeout 120m;
>      ...
> 
> почему ssl_session_cache по умолчанию выключен -
> не знаю, наверное чтобы зря не расходовать память,
> если SSL не используется или используется очень мало.

Кэш не используется, потому что от builtin больше вреда, чем пользы,
шаред нужно специально конфигурить - имя, размер. Может быть, да,
стоит сделать shared:SSL:1M по умолчанию.

Что касается flood_connect, то судя по исходникам версии 1.5, найденым
в интернетах, он не использует сесссии повторно, поэтому в тесте кэширование
сессий никак не проявится.

> 2. если при сборке nginx указывать ключи
> --with-md5-asm --with-zlib-asm=pentiumpro
> думаю что он тогда будет работать быстрее,
> чем если без них. по крайней мере, на i386.
> 
> см. также другие ключи оптимизации в ./configure --help
> все не используемые модули наверное лучше будет выключить.

Это проценты, а не разы.

> 3. если при работающем nginx изменялись SSL сертификаты
> в конфиге - тогда надо делать service nginx force-reload
> потому что после service nginx reload - nginx продолжает
> использовать старые и молча игнорирует новые сертификаты.
> 
> я не считаю, что это ошибка, - это больше особенность поведения
> о которой следует помнить, если приходится их на лету обновлять.

А вот с этим я не сталикался. По идее, должно работать, хотя смена
сертификата настолько редкая операция, что я уже и не помню.


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





More information about the nginx-ru mailing list