我的服务器装有 FreeBSD(16 核,带 HT、SSD、32GB RAM),每天大约有 40M 个 http 请求。所有请求均由nginx
+处理php-fpm
。
通过这些图表您可以看到我们在流量高峰期间遇到了问题。我不是系统管理员,请解释一下什么是“活动连接”、“写入”、“等待”、“读取”,以及为什么当服务器无法快速处理请求时“写入”会增加?
这里还有一些有关 CPU、内存和平均负载的图表。
可以看到,CPU和内存并没有发生什么异常,但是平均负载也出现了峰值。
在此平均负载峰值期间,我注意到 php-fpm.sock 上有一个未服务的队列
netstat -Lan | grep php-fpm unix 2525/0/32246 /tmp/php-fpm.sock
队列中的成员数量从 0 到 12000 不等。当值为 0 时 - 一切正常,我会在 60-100 毫秒内收到 http 响应。当值为 5000-12000 时,可能需要 3-10 秒。
我还检查了是否有任何异常进程top
,但未能发现任何东西。
这是top
几分钟前的截图(目前一切正常,没有流量高峰):
我的结论:根据 CPU 和内存图表,我可以说该服务器可以满足越来越多的请求,但是由于 php-fpm 的工作不理想,在流量高峰期间这是不可能的。
关于如何解决这个问题有什么建议吗?