Потребление памяти воркерами

Igor Sysoev is at rambler-co.ru
Wed Dec 12 16:34:39 MSK 2007


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





More information about the nginx-ru mailing list