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