Доброго дня, Игорь.
Имеем аналогичную проблему, проявляется предположительно только в случае
наличия limit_rate директив. Машина двухпроцессорная, детали см. ниже:
[root@xxxx yyy]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/0.3.49
[root@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@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@xxxx yyy]# strace -p 1950
Process 1950 attached - interrupt to quit
Process 1950 detached
[root@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@xxxxxxxxxxxxx>
wrote:
> В таких случаях можно сделать следующее:
>
> 1) запустить strace/ktrace/и тому подобное на десяток секунд,
> вывод прислать мне.
>
> 2) запустить screen и подсоединиться к зациклившимся процессам с
> помощью gdb, процессы будут висеть в состоянии STOP.
>
> В таком состоянии nginx'у можно смело посылать -HUP, -USR1 и даже
> делать online-upgrade (единственное исключение - при использовании
> метода rtsig: там могут быть проблемы).
> После этого будем вместе смотреть проблему.
>
>
> Игорь Сысоев
> http://sysoev.ru
--
Alexey V. Belanov <alexey.belanov@xxxxxxxxx>