Re: Не до конца понятное поведение nginx 1.1.14 после нескольких reload.

Andrey Repin hell-for-yahoo на umail.ru
Пн Фев 27 19:57:24 UTC 2012


Здравствуйте, Уважаемый(-ая, -ое) sai!

s> Ось Centos 5.5 64-bit nginx 1.1.14

s> После добавления в конфиг виртуальных
s> хостов делаю restart. PS показывает
s> следующие:


s> root     20690  0.2 18.5 251804 190564 ?       Ss   17:47   0:00 nginx:
s> master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
s> nginx    20691  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20692  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20694  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20695  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20696  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20697  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20698  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20699  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20700  0.0 18.6 251808 190916 ?       S    17:47   0:00  \_
s> nginx: worker process
s> nginx    20701  0.0 18.6 251808 190912 ?       S    17:47   0:00  \_
s> nginx: worker process

s> Затем делаю reload. Вижу: 

s> Reload 1

s> root     20690  1.4 34.4 422596 353308 ?       Ss   17:47   0:01 nginx:
s> master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
s> nginx    20944  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20945  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20946  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20947  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20948  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20949  0.5 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20950  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20951  0.5 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20953  0.4 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process
s> nginx    20954  0.7 34.3 422600 352532 ?       S    17:49   0:00  \_
s> nginx: worker process

s> Как видим память увеличилась почти в
s> два раза. Из-за чего это происходит?
s> Системный
s> аллокатор не отдаёт память обратно?
s> Можно ли как-то с этим бороться, или это
s> нормальное поведение nginx? 

Это нормальное поведение nginx. Почитайте уже документацию, что ли.

s> Вот ещё не понятная для меня штука.
s> Делаю последующие reload и вижу:

s> Reload 2 

s> root     20690  1.2 25.0 423008 257216 ?       Ss   17:47   0:04 nginx:
s> master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
s> nginx    21264  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21265  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21266  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21268  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21269  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21270  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21271  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21272  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21273  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process
s> nginx    21274  0.1 24.9 423012 256276 ?       S    17:52   0:00  \_
s> nginx: worker process

s> Reload 3

s> root     20690  1.1 16.2 423008 166964 ?       Ss   17:47   0:09 nginx:
s> master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
s> nginx    22000  0.0 15.8 423012 162764 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22001  0.0 15.8 423012 162764 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22002  0.0 16.3 423012 167916 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22003  0.0 16.7 423012 172276 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22004  0.0 16.5 423012 169864 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22005  0.0 18.0 423012 185612 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22006  0.0 18.2 423012 187212 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22007  0.1 18.2 423012 187212 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22008  0.0 18.2 423012 187212 ?       S    17:57   0:00  \_
s> nginx: worker process
s> nginx    22010  0.0 18.2 423012 187212 ?       S    17:57   0:00  \_
s> nginx: worker process

s> Процент занимаемой памяти процессами
s> уменьшился. Почему так произошло?
s> Притом когда я делал много reload при
s> меньшем количестве виртуальных хостов,
s> таких  спецэффектов не замечал. Т.е не
s> было такого, что процент занимаемой
s> памяти становился меньше при
s> последующих reload. Такой эффект
s> возникает, когда во время reload
s> физическая память кончается на VPS. 

s> Буду очень благодарен за любую
s> информацию по данным вопросам.

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


-- 
С уважением

    Andrey Repin (hell-for-yahoo на umail.ru) понедельник, 27.02.2012, <23:54>



Подробная информация о списке рассылки nginx-ru