我有一个高负载的dynamicPHP Web服务,我最近从Apache2转移到Nginx和PHP-FPM。 我发现自移动以来平均请求延迟从0.5秒增加到了1秒。
我不确定系统的瓶颈在哪里,我一直希望能够减less平均延迟,我知道我的机器不是:
Nginx通过一个unix套接字将请求转发到PHP-FPM。
这是我的nginx.conf文件的一部分:
worker_processes 2; # one for each processor worker_rlimit_nofile 65536; ... fastcgi_buffers 256 16k; fastcgi_buffer_size 32k; fastcgi_max_temp_file_size 0; proxy_buffer_size 32k; proxy_buffers 4 32k; proxy_busy_buffers_size 32k;
和我的php-fpm.conf
listen = /var/run/php5-fpm.sock listen.backlog = 2048 pm = static pm.max_children = 64
有什么突出的东西是奇怪的还是错的?
使用一个单一的sockets应该没问题。
几件事情来检查:
每个进程的最大文件句柄数是多less? ulimit -n你可以从这个增加中受益。
在php-fpm中启用日志logging,查看请求按照它的时间长度。 在pool.d / http://www.conf中:
access.format = %R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%
使用状态模块来查看nginx里面发生了什么: http : //wiki.nginx.org/HttpStubStatusModule