Re: Nginx reload, выедает CPU

Serge Negodyuck serg at petrovich.kiev.ua
Tue Aug 27 18:45:21 UTC 2013


>> Имеет смысл либо походить по коду в gdb, либо посмотреть на
>> картину с помощью ktrace + kdump -T.  Ну и на банальный top тоже
>> имеет смысл посмотреть внимательно.
>
> Ок, попробую нарыть больше информации для диагностики. И воспроизвести
> в минимальной конфигурации.

Поигравшись с  "while true; do gdb66 -ex "backtrace full" --batch -p
41159; done"
получилось, что бОльшую часть времени эти процессы проводят в
состоянии: " if (c[i].fd != -1 && c[i].idle) {":

0x0000000000434202 in ngx_worker_process_cycle (cycle=0x801cf9050,
data=0x3) at src/os/unix/ngx_process_cycle.c:791
791                                   if (c[i].fd != -1 && c[i].idle) {
#0 0x0000000000434202 in ngx_worker_process_cycle (cycle=0x801cf9050,
data=0x3) at src/os/unix/ngx_process_cycle.c:791
        worker = 3
        i = 29890
        c = (ngx_connection_t *) 0x82d800000
#1 0x0000000000431879 in ngx_spawn_process (cycle=0x801cf9050,
proc=0x434180 <ngx_worker_process_cycle>, data=0x3, name=0x4b7dd3
"worker process", respawn=-4) at src/os/unix/ngx_process.c:198
        on = 1
        pid = 0
        s = 12
#2 0x0000000000433576 in ngx_start_worker_processes
(cycle=0x801cf9050, n=8, type=-4) at
src/os/unix/ngx_process_cycle.c:362
        i = 3
        ch = {command = 1, pid = 41158, slot = 11, fd = 25}
#3 0x0000000000433189 in ngx_master_process_cycle (cycle=0x801cf9050)
at src/os/unix/ngx_process_cycle.c:249
        title = 0x803fb6fac ""
        p = (u_char *) 0x803fb6fd0 "hP▒\001\b"
        size = 37
        i = 1
        n = 4
        sigio = 0
        set = {__bits = {0, 0, 0, 0}}
        itv = {it_interval = {tv_sec = 0, tv_usec = 34367014912},
it_value = {tv_sec = 1, tv_usec = 140737488346448}}
        live = 1
        delay = 0
        ls = (ngx_listening_t *) 0x801cf52b0
        ccf = (ngx_core_conf_t *) 0x801cf9e68
#4 0x0000000000406ac3 in main (argc=1, argv=0x7fffffffdda8) at
src/core/nginx.c:412
        i = 53
        log = (ngx_log_t *) 0x6e27c0
        cycle = (ngx_cycle_t *) 0x801cf5050
        init_cycle = {conf_ctx = 0x0, pool = 0x801c07c00, log =
0x6e27c0, new_log = {log_level = 0, file = 0x0, connection = 0,
handler = 0, data = 0x0, action = 0x0}, files = 0x0, free_connections
= 0x0, free_connection_n = 0,
         reusable_connections_queue = {prev = 0x0, next = 0x0},
listening = {elts = 0x801c59600, nelts = 3, size = 216, nalloc = 10,
pool = 0x801c07c00}, paths = {elts = 0x0, nelts = 0, size = 0, nalloc
= 0, pool = 0x0}, open_files = {last = 0x0, part = {elts = 0x0, nelts
= 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, shared_memory =
{last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0,
nalloc = 0, pool = 0x0}, connection_n = 0, files_n = 0, connections =
0x0, read_events = 0x0, write_events = 0x0, old_cycle = 0x0, conf_file
= {len = 31, data = 0x4b4ca0 "/usr/local/etc/nginx/nginx.conf"},
conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 21, data =
0x4b4ca0 "/usr/local/etc/nginx/nginx.conf"}, prefix = {len = 21, data
= 0x4b4c88 "/usr/local/etc/nginx/"}, lock_file = {len = 0, data =
0x0}, hostname = {len = 0, data = 0x0}}
        ccf = (ngx_core_conf_t *) 0x801cf5a50



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