程序是php写的一个websocket服务器,客户端连接后不停的发送消息,服务端负责响应请求。经过测试:客户端每请求的一次,服务端php消耗时间为900microsecs至1500microsecs(消息大小不一样)。服务器为单核,30个客户端,使用top中查看php进程占用cpu在3-5%左右,loadaverage1分钟负载显示0.05左右。基本符合预期。但是有时候,laodaverage1分钟负载显示为0.3甚至0.4,5分钟负载现实0.2,但是使用top(或者htop)查看进程,发现和正常情况下进本没变化,php进程cpu占用还是在3%-5%,其余进程都是1%以下。加起来远远小于laodaverage现实的负载(30%-40%)。strace跟踪查看php进程,没发现特别的变化(和之前对比)。top下查看到的进程的cpu占用和loadaverage显示的负载相差很远。请问如何找出cpu被哪些占用?
相关分类