ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: too high cpu load



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




 




Copyright © Lexa Software, 1996-2009.