我正在对Web服务进行负载测试.这是一个运行在PHP-fpm和Nginx上的PHP应用程序,带有fastcgi.有一个
MySQL后端仅用于小型读取.
原文链接:https://www.f2er.com/php/139274.html总是,我看到一种奇特的模式:性能稳定并且随着流量的增加而可预测地增加,但随后它在峰值时变得不稳定:cpu使用率不断波动.
这是我看到的性能模式(用nmon可视化):
下降总是与我的负载测试工具 – locust.io – 在完成升级到我为测试设置的峰值水平时所具有的短暂暂停一致.
我的假设:在这个短暂的时刻,PHP-fpm主人认为负载已经消失并开始杀死工人;当流量在一段时间后全面恢复时,它无法快速响应.
我不太明白的原因是为什么它永远无法重新回到原点:我在负载均衡器后面的所有4个应用服务器上无限期地看到这种波动.
这是我的PHP-fpm池配置:
[www] user = www-data group = www-data listen = /var/run/PHP5-fpm.sock listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 100 pm.start_servers = 40 pm.min_spare_servers = 40 pm.max_spare_servers = 100 pm.max_requests = 10000
我已经确认这不是数据库的问题 – 在看到MysqL读取从属数量增加一倍之后,我看到了完全相同的行为.
是什么造成的?我怎么能阻止它?
编辑:
这是一张图表,展示了我所看到的.请注意,失败率通常会随着user_count达到峰值而出现峰值,然后逐渐降低.