нагрузка одного воркера 99.9% CPU

Alexey V. Belanov alexey.belanov at gmail.com
Mon Jul 3 17:34:37 MSD 2006


Доброго дня, Игорь.

Имеем аналогичную проблему, проявляется предположительно только в случае
наличия limit_rate директив. Машина двухпроцессорная, детали см. ниже:

[root at xxxx yyy]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/0.3.49

[root at xxxx yyy]# top -b | grep nginx
 1944 nobody    25   0  2756 1588  892 R 57.1  0.2 145:51.65 nginx
 1950 nobody    25   0  2748 1628  880 R 41.3  0.2   1036:19 nginx
 1943 nobody    25   0  2852 1692  900 R 37.4  0.2 138:45.03 nginx
 1951 nobody    25   0  2868 1752  896 R 35.4  0.2 694:52.23 nginx
 1949 nobody    25   0  2924 1820  916 R 23.6  0.2 641:53.45 nginx
 1948 nobody    15   0  3120 1972  916 S  3.9  0.2  12:02.49 nginx
 1946 nobody    15   0  3176 2020  916 D  2.0  0.2  12:15.70 nginx
 1947 nobody    15   0  3076 1928  916 D  2.0  0.2  11:06.61 nginx
 1941 root      20   0  2404 1040  776 S  0.0  0.1   0:00.00 nginx
 1945 nobody    15   0  2896 1728  916 S  0.0  0.2  12:03.52 nginx

[root at xxxx yyy]# uname -a
Linux xxxx 2.6.12-prep-gs6.2 #3 SMP Mon Jun 19 13:32:33 EEST 2006 i686 
i686 i386 GNU/Linux

[root at xxxx yyy]# strace -p 1950
Process 1950 attached - interrupt to quit
Process 1950 detached

[root at xxxx yyy]# gdb -p 1950
GNU gdb Red Hat Linux (6.1post-1.20040607.43.0.1rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".
Attaching to process 1950

warning: The current VSYSCALL page code requires an existing execuitable.
Use "add-symbol-file-from-memory" to load the VSYSCALL page by hand
Reading symbols from /usr/local/nginx/sbin/nginx...done.
Using host libthread_db library "/lib/tls/libthread_db.so.1".
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
0x08071f72 in ngx_http_write_filter (r=0x9744330, in=0x0) at 
src/http/ngx_http_write_filter_module.c:217
217                 ngx_add_timer(r->connection->write,
(gdb)

nginx собран с дебагом, если нужна дополнительная отладка - напишите что
требуется.


On Mon, 3 Jul 2006 11:56:45 +0400 (MSD) Igor Sysoev <is at rambler-co.ru>
wrote:

> В таких случаях можно сделать следующее:
> 
> 1) запустить strace/ktrace/и тому подобное на десяток секунд,
>     вывод прислать мне.
> 
> 2) запустить screen и подсоединиться к зациклившимся процессам с
>     помощью gdb, процессы будут висеть в состоянии STOP.
> 
> В таком состоянии nginx'у можно смело посылать -HUP, -USR1 и даже
> делать online-upgrade (единственное исключение - при использовании
> метода rtsig: там могут быть проблемы).
> После этого будем вместе смотреть проблему.
> 
> 
> Игорь Сысоев
> http://sysoev.ru

-- 
Alexey V. Belanov <alexey.belanov at gmail.com>






More information about the nginx-ru mailing list