Re: Зависание nginx из-за memcached

Vadim Osipov nginx-forum на forum.nginx.org
Чт Май 26 10:17:00 UTC 2016


Новые подробности. Благодаря советам, решил попытаться дать такую нагрузку
на nginx, чтобы потом заsegfault-ив memcached, попытаться смоделировать у
проблему у клиента. Однако, заинтересовала ситуация, возможно, подобная
тому, что есть у клиента, по меньшей мере, по загрузке CPU и косвенным
признакам, что memcached является причиной.

В общем.

upstream  memcached_cluster  {
    server 10.197.162.35:11211;    # <------ такого memcached нету либо он
не запущен (или упал, завис как в случае как у клиента)
    hash   $uri/3.6;
    hash_again  1000;
    keepalive 512;
}

Запускаю nginx с описанным выше upstream.
Если запросов нету, которые приводят к обращению к memcached_cluster, то все
нормально, 
но когда приходит несколько запросов (может быть даже 1, точно не скажу, но
5-10 точно хватит), начинается загрузка CPU примерно 96-99.5% при server,
который не работает (или был, но упал/завис). 
Естественно, если server работает, то все нормально и такой загрузки нету.

После такой загрузки, service nginx stop/restart пытается остановить,
перезапустить сервис, но ... я не дождался. Более подробно - ниже.

------------------------------------------------------------------------------------------------------------
ps uax | grep nginx

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
nginx     5072  0.0  0.2 428488 16500 ?        S    11:03   0:00 nginx:
worker process                   
nginx     5073  0.0  0.2 428488 16500 ?        S    11:03   0:00 nginx:
worker process                   
nginx     5074  0.0  0.2 428488 16500 ?        S    11:03   0:00 nginx:
worker process                   
nginx     5075  0.0  0.0 416764  4724 ?        S    11:03   0:00 nginx:
cache manager process            
root     15711  0.0  0.1 416764  6532 ?        Ss   May25   0:00 nginx:
master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    15715  3.8  0.2 426956 15468 ?        R<   May25  40:17 nginx:
worker process 

root      5130  0.0  0.0 103268   896 pts/2    S+   11:03   0:00 grep nginx
------------------------------------------------------------------------------------------------------------
top

top - 11:08:11 up 2 days, 2 min,  3 users,  load average: 1.03, 1.03, 0.92
Tasks:  96 total,   2 running,  94 sleeping,   0 stopped,   0 zombie
Cpu(s): 98.0%us,  0.0%sy,  2.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si, 
0.0%st
Mem:   5993264k total,  2813292k used,  3179972k free,   221772k buffers
Swap:  3145724k total,        0k used,  3145724k free,  1060512k cached

PID   USER      PR  NI  VIRT  RES  SHR  S %CPU %MEM      TIME+    COMMAND   
                  
15715 nginx     15  -5  416m  15m  1256 R 97.2  0.3      44:23.91 nginx     
                                
------------------------------------------------------------------------------------------------------------

# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping
nginx:..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................^C
Пришлось, как видно, сделать Ctrl + C, а затем kill -9
------------------------------------------------------------------------------------------------------------

error_log в режим error:

2016/05/26 11:21:29 [alert] 15711#0: worker process 15715 exited on signal
9
2016/05/26 11:24:42 [error] 7159#0: *1 upstream timed out (110: Connection
timed out) while connecting to upstream, client: 172.16.11.46, server:
10.197.162.35, request: "GET /url1?rnd=0.7008626744856947 HTTP/1.1",
upstream: "memcached://10.197.164.22:11211", host: "172.20.1.240", referrer:
"http://172.20.1.240/url2"
2016/05/26 11:24:47 [error] 7159#0: *1 upstream timed out (110: Connection
timed out) while connecting to upstream, client: 172.16.11.46, server:
10.197.162.35, request: "GET /url1?rnd=0.7008626744856947 HTTP/1.1",
upstream: "memcached://10.197.162.35:11211", host: "172.20.1.240", referrer:
"http://172.20.1.240/url2"
------------------------------------------------------------------------------------------------------------

Установил error_log в режим info:
2016/05/26 12:15:51 [notice] 11221#0: using the "epoll" event method
2016/05/26 12:15:51 [notice] 11221#0: nginx/1.4.2
2016/05/26 12:15:51 [notice] 11221#0: built by gcc 4.4.7 20120313 (Red Hat
4.4.7-3) (GCC)
2016/05/26 12:15:51 [notice] 11221#0: OS: Linux 2.6.32-504.12.2.el6.x86_64
2016/05/26 12:15:51 [notice] 11221#0: getrlimit(RLIMIT_NOFILE): 2048:4096
2016/05/26 12:15:51 [notice] 11222#0: start worker processes
2016/05/26 12:15:51 [notice] 11222#0: start worker process 11224
2016/05/26 12:15:51 [notice] 11222#0: start worker process 11225
2016/05/26 12:15:51 [notice] 11222#0: start worker process 11226
2016/05/26 12:15:51 [notice] 11222#0: start cache manager process 11227
2016/05/26 12:15:51 [notice] 11222#0: start cache loader process 11228
2016/05/26 12:16:51 [notice] 11228#0: http file cache: /var/cache/nginx/ftl
0.055M, bsize: 4096
2016/05/26 12:16:51 [notice] 11228#0: http file cache:
/var/cache/nginx/systemConfig 0.008M, bsize: 4096
2016/05/26 12:16:51 [notice] 11228#0: http file cache:
/var/cache/nginx/banners 0.000M, bsize: 4096
2016/05/26 12:16:51 [notice] 11228#0: http file cache: /dev/shm/screenshots
0.000M, bsize: 4096
2016/05/26 12:16:51 [notice] 11222#0: signal 17 (SIGCHLD) received
2016/05/26 12:16:51 [notice] 11222#0: cache loader process 11228 exited with
code 0
2016/05/26 12:16:51 [notice] 11222#0: signal 29 (SIGIO) received
2016/05/26 12:20:35 [error] 11224#0: *1 upstream timed out (110: Connection
timed out) while connecting to upstream, client: 172.16.11.46, server:
10.197.162.35, request: "GET /url1?rnd=0.9631175188545227 HTTP/1.1",
upstream: "memcached://10.197.162.35:11211", host: "172.20.1.240", referrer:
"http://172.20.1.240/url2"

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,267049,267159#msg-267159



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