ssl and worker_processes

Igor Sysoev is at rambler-co.ru
Thu Dec 1 20:20:03 MSK 2005


On Thu, 1 Dec 2005, Anton Yuzhaninov wrote:

> IS> Самая ресурсоёмкая часть SSL - это установление SSL сессий (handshake).
> IS> SSL поддерживает кэширование сессий, то есть, клиент может установить
> IS> одну сессию, а затем использовать её в нескольких одновременных
> IS> или в будущих соединениях.
>
> IS> nginx поддерживает кэш сессий в только пределах одного процесса.
> IS> Собственно nginx'у для этого практически ничего не нужно делать,
> IS> только пара вызовов, всё остальное делает сам OpenSSL.
>
> IS> Апачу приходится использовать межпроцессный кэш, поскольку
> IS> у него каждый процесс обрабатывает только одно соединение и
> IS> вероятность того, что следующий запрос этого же клиента попадёт на
> IS> тот же процесс, достаточно мала и, как следствие, внутренний
> IS> кэш практически не использовуется.
>
>>> Дело в том, что есть нагруженный сервер, хочется добавить один хост с
>>> https.
>>>
>>> 99,9% запросов будут идти по http
>>>
>>> Сейчас воркеров 3 и уменьшать их не хочется, боюсь это плохо скажется
>>> на обработке http запросов.
>
> IS> Какой характер нагрузки ? Часто ли nginx ходит к диску ? Если нет,
> IS> то одного рабочего процесса будет достаточно. Более того, в этом
> IS> случае один процесс будет лучше.
>
> Нагрузка - раздача файлов от 100 кб до нескольких Mb с диска.
>
> В логе иногда проскакивают сообщения:
> accept() failed (53: Software caused connection abort) while accepting new connection on 213.219.249.67:80
> Как писалось в рассылке то лечиться наоборот увеличением воркеров.
>
> Хотя в моем случае это можно быть вызвано другой причиной - скорость
> скачки ограничивается через ipfw pipe и много пакетов дропается в нем.

"Software caused connection abort" означает, что к тому моменту, когда
nginx вызвал accept(), клиент уже закрыл соединение. Если netstat -Lan
показывает, что очередь запросов практически пустая, то дело не в числе
воркеров.

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

Во FreeBSD одного воркера мало, если
1) nginx часто висит в состоянии biord,
2) requests for I/O initiated by sendfile в выводе "netstat -m"
    увеличивается с каждой секундой.

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

Можно.


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





More information about the nginx-ru mailing list