提问人:Sbraaa 提问时间:11/2/2023 更新时间:11/2/2023 访问量:72
Php-fpm:随时间推移的 CPU 使用率异常
Php-fpm: abnormal cpu usage over time
问:
我在 Ubuntu 18.04.3 LTS VM (VM Ware vSphere Hypervisor) 上运行 apache (2.4.29) + php-fpm (php 7.2) + memcached,具有 16 个 vcore (2Ghz) 和 16GB RAM。
Mysql 5.7 在单独的服务器上和 php-fpm 设置为:
pm = 动态 pm.max_children = 256 pm.start_servers = 110 pm.min_spare_servers = 32 pm.max_spare_servers = 150
(这是相当过度配置的)
最大 RAM 使用率低于 15%(约 2.5GB)
自 3 个月以来,我一直在与一种奇怪的行为作斗争:全局 cpu 使用率随着时间的推移而增加,执行相同的过程(主要是 php-fpm),直到使用率超过 100%(有时为 150%),导致服务器变得不可用(并在 vsphere 仪表板上生成大量警报事件!
这种行为通常需要 3/4 天:第一天一切正常,CPU 使用率低于 40%,然后第二天它增加了 10/20%,直到第三天或第四天超过 100%,唯一的解决方案是重新启动 VM。
我看到的是每天php-fpm进程请求更多的cpu!
连接的用户数量每天都是一样的,而且每分钟的请求量每天都不会改变。用顶部看,我看到的进程数总是相同(大约 450 个),没有僵尸。无内存泄漏(始终低于活动使用量的 15%)。
我首先检查Mysql作为瓶颈源,但Mysql响应速度很快,并且托管它的VM始终低于全局CPU使用率的30%。
然后我仔细分析了每个可用的日志(apache 访问和错误日志以及 php-fpm 日志),寻找一些奇怪的东西,但我没有发现任何奇怪的东西:总是相同的路由!没有DOS攻击或请求过载的痕迹。
查找系统日志(系统日志、消息等)一无所获。
自从我看到这个问题以来,我从未更新过操作系统(这是相当更新的):vmware 工具已更新,并且没有进行任何 php 源变体。
我尝试重新启动单个服务(php-fpm、apache、memcached)以找到这种荒谬行为的根源,但似乎唯一的解决方案是重新启动 VM。
看来泄漏的资源是CPU!
我试图联系托管 VM 的提供商,但(显然)他们没有检测到节点上的任何问题。矛盾的是,每 3 天重新启动一次 VM 就足够了,而且没有问题......荒谬!
任何建议将不胜感激!
谢谢
答: 暂无答案
评论