ssl and worker_processes

Igor Sysoev is at rambler-co.ru
Thu Dec 1 19:24:46 MSK 2005


On Thu, 1 Dec 2005, Anton Yuzhaninov wrote:

> В документации по модулю ngx_http_ssl_module написано, что для
> уменьшения загрузки процессора рекомендуется использовать только один
> рабочий процесс.
>
> Можно поподробнее с чем это связано?

Самая ресурсоёмкая часть SSL - это установление SSL сессий (handshake).
SSL поддерживает кэширование сессий, то есть, клиент может установить 
одну сессию, а затем использовать её в нескольких одновременных
или в будущих соединениях.

nginx поддерживает кэш сессий в только пределах одного процесса.
Собственно nginx'у для этого практически ничего не нужно делать,
только пара вызовов, всё остальное делает сам OpenSSL.

Апачу приходится использовать межпроцессный кэш, поскольку
у него каждый процесс обрабатывает только одно соединение и
вероятность того, что следующий запрос этого же клиента попадёт на
тот же процесс, достаточно мала и, как следствие, внутренний
кэш практически не использовуется.

> Дело в том, что есть нагруженный сервер, хочется добавить один хост с
> https.
>
> 99,9% запросов будут идти по http
>
> Сейчас воркеров 3 и уменьшать их не хочется, боюсь это плохо скажется
> на обработке http запросов.

Какой характер нагрузки ? Часто ли nginx ходит к диску ? Если нет,
то одного рабочего процесса будет достаточно. Более того, в этом
случае один процесс будет лучше.

> Скажется ли отрицательно на загрузке процессора количество воркеров
> больше одного, в данном случае?

Если SSL мало, то не должно.


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





More information about the nginx-ru mailing list