当一个进程处于 Sleep 状态的时候, 任然占用了不少 CPU, 先不要怀疑是不是进程的问题, 我们看一下 Ttop 命令的 man page....我们知道中断有硬中断和软中断, 硬中断是由网卡, 鼠标等硬件发出中断信号, cpu 马上停下在做的事情, 处理中断信号. 软中断是由操作系统发出的, 常用于进程的强制调度....不管是 vmstat 还是 pidstat 都只是新能探测工具, 我们无法看到具体的中断是由谁发出的....结合 vmstat 中的命令, 我们可以确定造成 qps 不高的原因之一是过多的进程争抢 CPU 导致的, 我们现在还不能确定具体是什么, 所以还需要进一步的排查.
strace
strace 可以查看系统调用..., 我们知道, 当使用系统调用的时候, 系统陷入内核态, 这个过程是会产生软中断的, 通过查看 php-fpm 的系统调用, 验证我们的猜想
?