nginx начинает жрать 100% проца

Maxim Odinintsev gwynn.pin на gmail.com
Чт Фев 3 02:39:55 MSK 2011


Доброе время суток,

недавно начались такие проблемы, что workerы начинают жрать 100% CPU и перестают принимать запросы.
Начинают жрать по очереди, сначала один, потом второй, и пока все не начнут тупить.
Несколько дней копаний никаких результатов не дали, по логам все нормально.
Есть второй сервер с такими же настройками, на нем все работает отлично.

Схема работы такая:
Два сервера с нжинкс, принимают запросы, на обоих стоит Apache2 как бэкэнд.
Каждый из серверов выступает в роли бэкапа для другого.

---
   upstream  dev_site_upstream  {
     server   127.0.0.1:8003;
     server   192.168.1.1:8003    backup;
   }
---

nginx обслуживает как http так и https запросы. Сам раздает только статику.

Статистика на "больном" сервере:
Active connections: 22
server accepts handled requests
  60979 60979 152211
Reading: 4 Writing: 11 Waiting: 7


Глюки начались не сразу, изначально тоже все работало отлично, но в один прекрасный день
начались такие вот тормоза, буквально на ровном месте.

Может у кого-то была подобная проблема, и кто-то смог ее побороть ?

sendfile, gzip отключать пробовали, да и еще много чего пробовали - безрезультатно.

Последнее что можно увидить в стрейсе, перед тем как очередной воркер начинает тупить:
[pid 32031] 15:04:15.104789 epoll_wait(185, {{EPOLLIN, {u32=2959113856, u64=46916886888064}}}, 512, 62) = 1
[pid 32031] 15:04:15.146924 read(195, "\26\3\1\0\206\20\0\0\202\0\200\266\337\363M\303?\374\273\261\263\223\340\241\267\312\350\262CF\305]"..., 34821) = 891
[pid 32031] 15:04:15.149138 write(195, "\24\3\1\0\1\1\26\3\1\00008y\267\355wZ\364g\370\270\245\353\355|NH\361\376\213\201\20"..., 59) = 59
[pid 32031] 15:04:15.149320 read(195, 0xa007430, 34821) = -1 EAGAIN (Resource temporarily unavailable)
[pid 32031] 15:04:15.149438 epoll_ctl(185, EPOLL_CTL_MOD, 195, {EPOLLIN|EPOLLOUT|EPOLLET, {u32=2959113856, u64=46916886888064}}) = 0


Версия nginx:
nginx version: nginx/0.8.53
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
TLS SNI support disabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log 
--http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi 
--http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module 
--with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module 
--with-http_perl_module --with-mail --with-file-aio --with-mail_ssl_module --with-ipv6 --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-cc-opt='-O2 -g -pipe 
-Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'





-- 
wbr -
  Maxim Odinintsev



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