我的博客获得了大量的流量(平均每天有 2000 位实时用户,好的时候有 5000 多个实时用户,每分钟的页面浏览量从 300 到 700+ 不等)。
但我觉得由于我的 WordPress nginx 设置配置错误,我错过了流量。我正在使用 New Relic 来监控性能,我注意到网站会随机地变得无响应(主要是当我获得更多流量并且相当长一段时间没有重新启动 php-fpm 时)。
当它变得无响应时,nginx状态
页面显示
listen queue: 500+ (this number varies)
max listen queue: 500+ (this number varies)
所以我想知道为什么 nginx 无法接受连接,因为我的服务器功能非常强大:
DigitalOcean 48GB Memory
16 Core Processor
480GB SSD Disk
所以我一定有一些设置非常错误。
nginx.conf
worker_processes 24;
worker_rlimit_nofile 20000;
events {
worker_connections 40000;
use epoll;
multi_accept on;
}
keepalive_timeout 65;
client_header_timeout 180;
client_body_timeout 180;
fastcgi_read_timeout 180;
php 池配置
pm = static
pm.max_children = 100
pm.max_requests = 500
现在显示 PHP-FPM 状态页面(我最近重新启动了 php5-fpm 和 nginx)
pool: www
process manager: static
start time: 29/Dec/2016:07:12:38 -0500
start since: 18854
accepted conn: 492343
listen queue: 0
max listen queue: 199
listen queue len: 40000
idle processes: 98
active processes: 2
total processes: 100
max active processes: 100
max children reached: 0
slow requests: 0
我错过了什么?工作连接配置不正确吗?请指导我。
最佳答案
去年遇到过类似的问题。我记不起用于解决的确切值(客户端的服务器并且不再具有访问权限),但了解到调整 PHP-FPM 配置以匹配 sysctl.conf 设置有很大帮助。
请记住,必须花费几天的时间进行监控才能获得完美的值。我学习的网站是:
https://easyengine.io/tutorials/php/fpm-sysctl-tweaking/
也许这会让你重回正轨......
关于PHP-FPM 监听队列已满,我的配置有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41384507/