too high cpu load

Igor Sysoev is at rambler-co.ru
Tue Nov 8 12:23:27 MSK 2005


On Tue, 8 Nov 2005, Alexander Burnos wrote:

> On Mon, Nov 07, 2005 at 10:30:03PM +0300, Igor Sysoev wrote:
>> On Mon, 7 Nov 2005, Igor Sysoev wrote:
>>
>>> On Mon, 7 Nov 2005, Alexander Burnos wrote:
>>
>>>> При этом он почему-то отжирает непозволительно много процессора.
>>>> top выглядит так:
>>>>
>>>> PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
>>>> 25894 httpd     16   0  7084 5352 1592 S 31.0  0.3   0:11.35 nginx
>>>> 14085 server1   17   0  550m 299m  16m S 25.2 14.8 609:20.18 backend
>>>> 25895 httpd     15   0  6404 4740 1592 R 19.4  0.2   0:10.62 nginx
>>>> 23738 httpd     16   0  394m  15m 3072 S  5.8  0.8   0:23.35 httpd
>>>> 14987 server1   17   0  572m 214m  19m S  3.9 10.6  58:42.15 backend
>>>> 23422 httpd     16   0  394m  16m 3072 S  1.9  0.8   0:25.95 httpd
>>>> 26040 root      15   0  2260 1036  736 R  1.9  0.0   0:00.02 top
>>>>
>>>> status:
>>>>
>>>> Active connections: 66
>>>> server accepts handled requests
>>>> 324586 324586 324568
>>>> Reading: 63 Writing: 2 Waiting: 1
>>>>
>>>> И это не самый пик нагрузки nginx.
>>>>
>>>> Конфиг таков:
>>>>
>>>> user  httpd httpd;
>>>> worker_processes  5;
>>
>>> 1) при использовании SSL лучше разрешать keep-alive:
>>>   keepalive_timeout  75;
>>
>> Судя по большому числу reading, есть ощущение, что nginx проводит время
>> в SSL handshake'ах. Что можно попробовать ? Во-первых, keep-alive,
>> а во-вторых оставить только один рабочий процесс, в этом случае сессии SSL
>> будут лучше кэшироваться (nginx, в отличие от Апача, поддерживает
>> кэширование
>> сессий только внутри одного процесса).
>
> Похоже это было оно, keep-alive не трогал, но оставил только
> master-процесс. В пик видел 10% процессора на nginx, значительно лучше
> чем было.

В смысле только master-процесс ? Должен работать только один worker.
Нужно или убрать директиву worker_processes (тогда по умолчанию будет
только одни worker), или явно указать "worker_processes 1".

Конфигурация "master_process  off" для продакшн не рекомендуется.
Я её использую только при разработке.

А keep-alive рекомендую включить - ресурсов съест немного, а польза будет.


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





More information about the nginx-ru mailing list