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

sai nginx-forum на nginx.us
Пн Фев 27 12:02:10 UTC 2012


Привет всем. 

Ось Centos 5.5 64-bit nginx 1.1.14

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


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

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

Reload 1

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

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

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

Reload 2 

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

Reload 3

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

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

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

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,223044,223044#msg-223044



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