В описанном мной тесте nginx не участвовал. Было 2 разных <b>нагружающих</b> сервера  - старое железо с FreeBSD и новый сервер с Linux. Нагружали балансировщик (мощная железка, полностью аппаратное решение на FPGA-вентилях). Удивило то, что очень старый сервер с BSD смог сгенерировать всего лишь вдвое меньше конкурентных SSL-сессий, чем весьма неслабый сервер под Linux (7500 у 1xP3 700 против 16000 у 2xXEON 2500).<br>

<br><div class="gmail_quote">22 октября 2009 г. 23:12 пользователь Gena Makhomed <span dir="ltr">&lt;<a href="mailto:gmm@csdoc.com">gmm@csdoc.com</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im">big bond wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Кстати, сегодня пробовали нагрузить конкурентными SSL-сессиями один из тестирумых балансировщиков, использовали программу flood_connect. Я скомпилировал её на линуксовой машине (2хXEON E5420, 2.50GHz, 4GB RAM, SUSE ENT 10.2), выжать смог максимум 16000 соединений, все 4 ядра были загружены на 100%.<br>


Коллега скомпилировал на старенькой железке (P3 700MHz, 512MB RAM, FreeBSD 7.2), выжал 7500 соединений и процессор был загружен не более 80%!!!!<br>
Сам балансировщик при этом тоже неплохо был загружен.<br>
Как такое возможно? Старая железка отстала всего в два раза от современного неслабого сервера!<br>
Запускали так: *flood_connect -S -f 10 -p 443 /адрес_балансировщика/*<br>
-f - количество форков<br>
-S - SSL-режим<br>
</blockquote>
<br></div>
1. если включить ssl_session_cache -<br>
SSL будет работать намного быстрее.<br>
например:<br>
<br>
http {<br>
    ssl_session_cache  shared:SSL:20M;<br>
    ssl_session_timeout 120m;<br>
    ...<br>
<br>
почему ssl_session_cache по умолчанию выключен -<br>
не знаю, наверное чтобы зря не расходовать память,<br>
если SSL не используется или используется очень мало.<br>
<br>
2. если при сборке nginx указывать ключи<br>
--with-md5-asm --with-zlib-asm=pentiumpro<br>
думаю что он тогда будет работать быстрее,<br>
чем если без них. по крайней мере, на i386.<br>
<br>
см. также другие ключи оптимизации в ./configure --help<br>
все не используемые модули наверное лучше будет выключить.<br>
<br>
3. если при работающем nginx изменялись SSL сертификаты<br>
в конфиге - тогда надо делать service nginx force-reload<br>
потому что после service nginx reload - nginx продолжает<br>
использовать старые и молча игнорирует новые сертификаты.<br>
<br>
я не считаю, что это ошибка, - это больше особенность поведения<br>
о которой следует помнить, если приходится их на лету обновлять.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    По хорошему надо CARP, но в принципе достаточно просто     чтоб в одном vlan-е были, вручную IP слегшего сервера можно будет перекинуть.<br>
</blockquote>
<br></div>
в англоязычном списке рассылки на вопрос про балансировщики<br>
советовали использовать <a href="http://www.backhand.org/wackamole/" target="_blank">http://www.backhand.org/wackamole/</a><br>
<br>
и читать книжку Scalable Internet Architectures<br>
<a href="http://www.amazon.com/Scalable-Internet-Architectures-Theo-Schlossnagle/dp/067232699X" target="_blank">http://www.amazon.com/Scalable-Internet-Architectures-Theo-Schlossnagle/dp/067232699X</a><br>
<br>
-- <br>
Best regards,<br><font color="#888888">
 Gena<br>
<br>
<br>
</font></blockquote></div><br>