Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Потребление памяти воркерами
On Wed, Dec 12, 2007 at 03:09:44PM +0200, Olexander Shtepa wrote:
> > SSL используется ?
>
> Да, почти каждый server имеет SSL конфигурацию.
>
> Еще, кажется я что-то нащупал.
> Увеличение client_header_buffer_size с 1к до 4к радикально уменьшило
> потребление памяти, даже при возращении keepalive_timeout к прежнему
> значению в 65 секунд, размер воркера не превышает теперь 13М.
>
> В порядке эксперимента устроил пробные тесты на тестовой машине:
> ab -n 10000 -c 1 -H ... {10 хидеров по 110 байт} http://localhost/small.html
> И несколько конфигураций nginxа (SSL нигде нету в конфигурации):
> 1. client_header_buffer_size 1к;
> 2. client_header_buffer_size 4к;
> 3. client_header_buffer_size 1к; large_client_header_buffers 4 2k;
> 4. client_header_buffer_size 1к; large_client_header_buffers 4 8k;
> 5. client_header_buffer_size 1к; large_client_header_buffers 4 64k;
>
> Размеры воркера под конец теста (после завершения теста размер уменьшался
> до начального в ~2М):
> 1. ~42М (4к на 1 запрос)
> 2. ~2М (размер немного поднялся, но всего на ~100к)
> 3. ~22М (2к на 1 запрос)
> 4. ~50М (4.8к на 1 запрос)
> 5. ~53М (5.1к на 1 запрос)
> Изминение количества буферов в large_client_header_buffers на результат не
> влияло.
> Примечательно, что в случае 2, скорость отдачи была ~12к #/sec, а для всех
> остальных - 2-3к #/sec, причем под конец теста скорость отдачи ощутимо
> падала, что хорошо было видно на глаз.
large_client_header_buffers я посмотрю, там есть один момент.
Но что касается памяти, то это всё же SSL, а не large buffers. На одно
соединение в SSL уходит около 100К. Если такие объёмы напрягают, то лучше
выключить keepalive и поставить по-больше кэш SSL-сессий:
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 30m;
--
Игорь Сысоев
http://sysoev.ru
|