Re: nginx потребляет процессор больше чем php-fpm
Denis Kot
denis.kot на gmail.com
Чт Мар 3 16:31:17 MSK 2011
С памятью как раз таки проблем нет.
Вот вывод от обоих воркеров:
# strace -cfp 19970
Process 19970 attached - interrupt to quit
^CProcess 19970 detached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
63.93 0.471126 565 834 close
20.61 0.151870 657 231 epoll_wait
4.62 0.034029 45 748 1 writev
4.03 0.029704 59 503 write
2.72 0.020017 50 403 epoll_ctl
1.36 0.010000 88 114 accept
1.36 0.010000 37 271 getsockopt
1.36 0.010000 43 232 gettimeofday
0.01 0.000069 1 124 124 connect
0.01 0.000063 0 129 open
0.00 0.000009 0 124 socket
0.00 0.000000 0 7 4 stat
0.00 0.000000 0 129 fstat
0.00 0.000000 0 238 ioctl
0.00 0.000000 0 93 pread
0.00 0.000000 0 311 readv
0.00 0.000000 0 1073 347 recvfrom
0.00 0.000000 0 116 getsockname
0.00 0.000000 0 94 setsockopt
------ ----------- ----------- --------- --------- ----------------
100.00 0.736887 5774 476 total
# strace -cfp 19969
Process 19969 attached - interrupt to quit
^CProcess 19969 detached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
63.62 0.297918 187 1597 close
19.22 0.090000 113 794 epoll_wait
5.51 0.025806 13 1968 592 recvfrom
4.90 0.022959 55 417 7 readv
4.16 0.019473 21 934 write
1.42 0.006664 21 320 getsockopt
1.02 0.004757 4 1308 epoll_ctl
0.07 0.000305 1 427 socket
0.05 0.000213 0 795 gettimeofday
0.03 0.000149 0 958 1 writev
0.01 0.000061 0 427 427 connect
0.00 0.000000 0 73 open
0.00 0.000000 0 18 9 stat
0.00 0.000000 0 73 fstat
0.00 0.000000 0 844 ioctl
0.00 0.000000 0 60 pread
0.00 0.000000 0 417 accept
0.00 0.000000 0 1 shutdown
0.00 0.000000 0 416 getsockname
0.00 0.000000 0 127 setsockopt
------ ----------- ----------- --------- --------- ----------------
100.00 0.468305 11974 1036 total
Denis Kot
3 марта 2011 г. 15:24 пользователь Александр Усов <ooshro at ooshro.org> написал:
> При наличии проблемы нужно не гадать и тыкаться, а диагностировать.
>
> Для анализа использования памяти, можно использовать pmap. Запускаешь pmap
> на первом сервере и на втором, и анализируй карты памяти. Пример:
>
> pmap `pgrep nginx`
> 1208: nginx: master process /usr/sbin/nginx
> 0000000000400000 592K r-x-- /usr/sbin/nginx
> 0000000000693000 4K r---- /usr/sbin/nginx
> 0000000000694000 64K rw--- /usr/sbin/nginx
> 00000000006a4000 56K rw--- [ anon ]
> 00000000021e7000 268K rw--- [ anon ]
> ....
> 00007f7bc6946000 4K r---- /lib/ld-2.11.1.so
> 00007f7bc6947000 4K rw--- /lib/ld-2.11.1.so
> 00007f7bc6948000 4K rw--- [ anon ]
> 00007fff88492000 84K rw--- [ stack ]
> 00007fff885ff000 4K r-x-- [ anon ]
> ffffffffff600000 4K r-x-- [ anon ]
> total 17420K
>
> По процесору, для начала можно пыпытатся strace -cfp PID:
>
> strace -cfp 1209
> Process 1209 attached - interrupt to quit
> ^CProcess 1209 detached
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> 67.36 0.000097 1 83 writev
> 19.44 0.000028 1 42 write
> 13.19 0.000019 0 54 epoll_ctl
> 0.00 0.000000 0 43 close
> 0.00 0.000000 0 48 ioctl
> 0.00 0.000000 0 639 285 readv
>
> Дальше можно google-perftool, OProfile и т.д.
>
> 3 марта 2011 г. 16:46 пользователь Denis Kot <denis.kot at gmail.com> написал:
>>
>> Перенес сайт на новый сервер. На старом стоял CentOS и nginx + php-fpm
>> 5.2.11 собранные из сырцов. На новом сервер Gentoo и nginx естественно
>> собран из сырцов так же.
>> На новом сервере nginx постоянно находится в самом верху вывода команды
>> top.
>>
>> Старый сервер:
>> # nginx -V
>> nginx version: nginx/0.8.29
>> TLS SNI support disabled
>> configure arguments: --prefix=/usr --conf-path=/etc/nginx/nginx.conf
>> --http-log-path=/var/log/nginx/access_log
>> --error-log-path=/var/log/nginx/error_log
>> --pid-path=/var/run/nginx.pid
>> --http-client-body-temp-path=/var/tmp/nginx/client
>> --http-proxy-temp-path=/var/tmp/nginx/proxy
>> --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --with-md5-asm
>> --with-md5=/usr/include --with-sha1-asm --with-sha1=/usr/include
>> --with-http_addition_module --with-http_realip_module
>> --with-http_ssl_module --with-http_perl_module
>> --with-http_stub_status_module --without-mail_pop3_module
>> --without-mail_smtp_module --without-mail_imap_module
>>
>> PHP 5.2.11
>>
>> Новый сервер:
>> # nginx -V
>> nginx version: nginx/0.8.53
>> TLS SNI support enabled
>> configure arguments: --prefix=/usr --sbin-path=/usr/sbin/nginx
>> --conf-path=/etc/nginx/nginx.conf
>> --error-log-path=/var/log/nginx/error_log
>> --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock
>> --user=nginx --group=nginx --with-cc-opt=-I/usr/include
>> --with-ld-opt=-L/usr/lib --http-log-path=/var/log/nginx/access_log
>> --http-client-body-temp-path=/var/tmp/nginx/client
>> --http-proxy-temp-path=/var/tmp/nginx/proxy
>> --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
>> --http-scgi-temp-path=/var/tmp/nginx/scgi
>> --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --with-file-aio
>> --with-aio_module --with-pcre --without-http_auth_basic_module
>> --without-http_autoindex_module --without-http_browser_module
>> --without-http_empty_gif_module --without-http_geo_module
>> --without-http_limit_req_module --without-http_limit_zone_module
>> --without-http_map_module --without-http_memcached_module
>> --without-http_referer_module --without-http_scgi_module
>> --without-http_ssi_module --without-http_split_clients_module
>> --without-http_userid_module --without-http_uwsgi_module
>> --with-http_addition_module --with-http_gzip_static_module
>> --with-http_realip_module --with-http_stub_status_module
>> --with-http_realip_module --with-http_ssl_module
>> --without-mail_imap_module --without-mail_pop3_module
>> --without-mail_smtp_module
>>
>> PHP 5.3.5-pl0-gentoo
>>
>> Конфиг nginx перенесен со старого сервера без правок.
>>
>> Вывод top такой:
>> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
>> 19970 nginx 20 0 124m 36m 864 S 28 0.9 18:02.17 nginx
>> 19969 nginx 20 0 129m 41m 864 R 26 1.0 19:09.88 nginx
>> 24247 nginx 20 0 216m 16m 9m R 15 0.4 0:03.00 php-fpm
>> 24289 nginx 20 0 215m 12m 7552 R 9 0.3 0:00.99 php-fpm
>> 24262 nginx 20 0 218m 25m 18m R 9 0.6 0:02.14 php-fpm
>>
>> Иногда CPU у nginx доходит до 50%
>>
>>
>> Как посмотреть чем занят nginx?
>> Может ли влиять TLS SNI support enabled/disabled?
>>
>> Denis Kot
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://nginx.org/mailman/listinfo/nginx-ru
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
>
Подробная информация о списке рассылки nginx-ru