странности в работе nginx
Alexey Bestciokov
proforg at maloletka.ru
Sun Apr 24 01:19:18 MSD 2005
Игорь !
По моему я уже это спрашивал, но в прошлый раз так и не разобрались
nginx после -HUP начинает странно себя вести
часть старых процессов резкро увеличивают количество используемого процессорного времени
в данном выводе это PID 6733 и 6745:
root at udaff /var/log/nginx>ps ax -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)'
PID PPID USER %CPU VSZ WCHAN COMMAND
12519 1 root 0.0 4252 rt_sig nginx: master process /usr/local/sbin/nginx
12521 12519 www-data 0.6 9140 - nginx: worker process is shutting down
17338 12519 www-data 0.7 8988 - nginx: worker process is shutting down
20458 12519 www-data 0.7 8728 - nginx: worker process is shutting down
20482 12519 www-data 0.7 6956 - nginx: worker process is shutting down
6733 12519 www-data 13.7 7916 - nginx: worker process is shutting down
6745 12519 www-data 13.2 7612 - nginx: worker process is shutting down
6856 12519 www-data 0.8 8172 - nginx: worker process is shutting down
16432 12519 www-data 0.5 7932 - nginx: worker process is shutting down
18980 12519 www-data 0.9 8032 sync_b nginx: worker process
18981 12519 www-data 0.9 7928 sync_p nginx: worker process
18982 12519 www-data 0.9 7756 sync_p nginx: worker process
18983 12519 www-data 0.9 7896 sync_p nginx: worker process
18984 12519 www-data 1.0 8136 sync_p nginx: worker process
18985 12519 www-data 0.9 7856 sync_p nginx: worker process
18986 12519 www-data 1.0 8092 sync_p nginx: worker process
18987 12519 www-data 1.0 8216 sync_b nginx: worker process
22522 32078 root 0.0 1628 - grep -E (nginx|PID)
strace показывает
блоки повторяющщихся строк
epoll_wait(195, {{EPOLLIN, {u32=3084277592, u64=3084277592}}}, 8192, 48197) = 1
gettimeofday({1114260172, 940343}, NULL) = 0
которые время от времени меняются блоками строк
epoll_wait(195, {{EPOLLIN, {u32=3084277672, u64=3084277672}}, {EPOLLERR|0x807a020, {u32=134717480, u64=28969689129000}}}, 8192, 48197) = 2
gettimeofday({1114260172, 940615}, NULL) = 0
полный вывод strace в течении минуты - http://maloletka.ru/dead_nginx.strace.bz2 (630 Кб)
со временем они конечно умирают, не не сразу и сервер грузят весьма заметно.
nginx 0.1.12+, linux 2.6.3+ SMP
в конфиге nginx прописано: debug_points abort;
И, в последнее время, появилась ещё одна особенность.
судя по выводу stub_status резко возрасло количество Active connections
если раньше оно было в пределах 2-3K, то в сейчас возрасло до 8K
что странно, т.к. нагрузка на сервер, судя по трафику, увеличилась процентов на 10, не больше
более того, как показывает netstat коннектов к серверу на 80й порт практически в 2 раза меньше.
по графику который строится на основе вывода stub_status ( http://maloletka.ru/mrtg/nginx.status.html )
видно, что после перезапуска nginx какое то время количество Active connections остается в разумных рамках,
после чего скачкообразно возрастает. Оно и бог бы с ним, но nginx начинает значительно медленне отвечать на запросы -
тотже stub_status отдается по нескольку секунд. Апач запущщеный на этом же сервере при этом отдает контент без задержек.
в какойто степени это вылечилось увеличением количества воркеров - 8 вместо двух, но видимо дело в чём то другом.
Как то всё весьма путанно получилось, но надеюсь суть более или менее
понятна :)
Алексей Бещёков.
proforg at maloletka.ru
More information about the nginx-ru
mailing list