You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

负载均衡下单台php-fpm实例CPU占用异常过高,流量占比低求助

排查步骤
  • 检查php-fpm进程状态与请求特征

    • 启用php-fpm状态页(通过pm.status_path配置),访问对应路径查看三台实例的slow requests、active processes、request duration指标,重点对比慢请求数量——慢请求会持续占用CPU资源,即使总流量少也可能导致CPU飙升。
    • 执行ps aux | grep php-fpm统计该实例的php-fpm进程数,确认是否与另外两台一致,避免因pm.max_children等配置被意外修改导致进程数异常。
  • 定位高CPU的php-fpm线程

    • 用top -H -p <主php-fpm进程PID>查看单线程CPU占用,找到占用最高的线程ID。
    • 用strace -p <线程PID>追踪系统调用,观察是否存在循环调用(如频繁文件读写、网络请求)或死循环行为。
    • 用gdb -p <主php-fpm进程PID>附加进程,执行bt打印调用栈,直接定位到消耗CPU的PHP代码段或扩展函数。
  • 排查系统层面差异

    • 执行vmstat 1查看swap交换情况(si/so列),若该实例swap频繁,内存不足会导致CPU额外开销。
    • 用iostat -x 1检查磁盘IO使用率(%util),磁盘瓶颈可能引发php-fpm进程的CPU占用异常(如大量同步日志写入)。
    • 检查htop中除php-fpm外的其他进程,确认是否有系统进程、定时任务等占用额外CPU。
  • 验证负载均衡配置

    • 检查负载均衡是否开启了会话保持(sticky session),若某个绑定到该实例的会话包含大量高CPU请求,会导致流量占比低但CPU负载高,可临时关闭会话保持观察CPU变化。
    • 确认负载均衡健康检查规则是否一致,避免因健康检查阈值差异导致该实例被分配特殊请求。
  • 核对PHP配置与代码请求

    • 对比三台实例的PHP核心配置:php -i | grep -E 'opcache.enable|memory_limit|max_execution_time',重点确认opcache是否正常启用——opcache失效会导致PHP重复编译代码,CPU占用剧增。
    • 查看该实例的access日志,对比请求类型(如POST请求占比、大文件上传请求)是否与其他实例不同,特定高CPU请求集中会引发此问题。
    • 检查PHP错误日志,排查是否有循环报错、未捕获异常等持续消耗CPU的情况。

内容的提问来源于stack exchange,提问作者Samarth Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 02:45:02