too high cpu load

Igor Sysoev is at rambler-co.ru
Tue Nov 8 13:13:57 MSK 2005


On Tue, 8 Nov 2005, Alexander Burnos wrote:

> On Tue, Nov 08, 2005 at 12:58:32PM +0300, Igor Sysoev wrote:
>> On Tue, 8 Nov 2005, Igor Sysoev wrote:
>>
>>>>> Судя по большому числу reading, есть ощущение, что nginx проводит время
>>>>> в SSL handshake'ах. Что можно попробовать ? Во-первых, keep-alive,
>>>>> а во-вторых оставить только один рабочий процесс, в этом случае сессии
>>>>> SSL
>>>>> будут лучше кэшироваться (nginx, в отличие от Апача, поддерживает
>>>>> кэширование
>>>>> сессий только внутри одного процесса).
>>>>
>>>> Похоже это было оно, keep-alive не трогал, но оставил только
>>>> master-процесс. В пик видел 10% процессора на nginx, значительно лучше
>>>> чем было.
>>>
>>> В смысле только master-процесс ? Должен работать только один worker.
>>> Нужно или убрать директиву worker_processes (тогда по умолчанию будет
>>> только одни worker), или явно указать "worker_processes 1".
>>
>> То есть, должно выглядеть примерно так:
>>
>> ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
>>   PID  PPID %CPU   VSZ WCHAN  COMMAND
>> 33272 37759 28.7 26864 -      nginx: worker process (nginx)
>> 37759     1  0.0  9528 pause  nginx: master process /usr/local/nginx/nginx
>
> Так и есть, один worker процесс. Прошу прощения, это я неточно
> выразился.
>
> Про keep-alive - спасибо, попробую. Но в целом, уменьшение worker'ов до
> 1-го - само по себе дало хороший эффект. Все же ssl handshake брали
> свое, похоже.
>
> А не планируется организация единого ssl кэша для всех worker'ов?

Планируется, но не сейчас. На самом деле, если nginx занимается
только проксированием, то одного воркера вполне досаточно.

Можно быстро добавить директиву для изменения времени кэширования -
сейчас 300 секунд.


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





More information about the nginx-ru mailing list