PHP进程CPU莫名占用过高 分享一个简单的排查过程。

首先使用top命令查看持续占用CPU最高的进程,并复制PID,之后去proc下查看这个进程的状态是否有异常值

1
2
3
4
5
6
$ cat /proc/$PID/status` # 查看状态
单位均为kB 求GB可 VmRSS / 1024 / 1024 = GB单位
VmRSS 代表实际物理内存占用
VmHWM 代表实际物理内存占用峰值
VmSwap 代表实际Swap占用
1
2
3
4
$ cat /proc/$PID/io 查看IO占用
read_bytes 代表实际读取硬盘字节总数
write_bytes 代表实际写入到磁盘字节总数
1
$ ll /proc/$PID/fd` 查看进程实际操作文件

最终发现由于log写入过多Notice level导致IO暴增CPU增高。