linux内部高但是top进程不高,linux 下cpu负载突然升高,但是top看不到占用cpu很高的进程,如何查出cpu被哪些进程占用?...

程序是php写的一个websocket服务器,客户端连接后不停的发送消息,服务端负责响应请求。

经过测试:客户端每请求的一次,服务端php消耗时间为 900 microsecs 至 1500 microsecs(消息大小不一样)。

服务器为单核,30个客户端,使用top中查看php进程占用cpu在 3-5%左右,load average 1分钟负载显示 0.05左右。基本符合预期。

但是有时候,laod average 1分钟负载显示为 0.3 甚至 0.4, 5分钟负载现实 0.2,

但是使用top(或者htop)查看进程,发现和正常情况下进本没变化,php进程cpu占用还是在3%-5%,其余进程都是 1%以下。加起来远远小于 laod average现实的负载(30%-40%)。

strace跟踪查看php进程,没发现特别的变化(和之前对比)。

top下查看到的进程的cpu占用和load average显示的负载相差很远。 请问如何找出cpu被哪些占用?

回复内容:

程序是php写的一个websocket服务器,客户端连接后不停的发送消息,服务端负责响应请求。

经过测试:客户端每请求的一次,服务端php消耗时间为 900 microsecs 至 1500 microsecs(消息大小不一样)。

服务器为单核,30个客户端,使用top中查看php进程占用cpu在 3-5%左右,load average 1分钟负载显示 0.05左右。基本符合预期。

但是有时候,laod average 1分钟负载显示为 0.3 甚至 0.4, 5分钟负载现实 0.2,

但是使用top(或者htop)查看进程,发现和正常情况下进本没变化,php进程cpu占用还是在3%-5%,其余进程都是 1%以下。加起来远远小于 laod average现实的负载(30%-40%)。

strace跟踪查看php进程,没发现特别的变化(和之前对比)。

top下查看到的进程的cpu占用和load average显示的负载相差很远。 请问如何找出cpu被哪些占用?

比较简单的方法是使用htop命令(如果没有,则需安装htop包)。这个是top的强化版本,同样在CLI界面使用。打开后选择CPU Usage排序,第一个就是占用CPU最高的那个进程了。

如果你不愿意或者不能安装htop的话,可以使用如下命令:

shps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3!=0.0) print $2,$3,$11}' > some_file.txt

这个命令将用户进程按CPU使用量排序并输出到some_file.txt里,你一看输出的文件就明白了,无需多言。

atop才是top的加强版,包含了磁盘和网络的信息,而且支持日志采集:

/etc/atop/atop.daily里定义了日志采集的间隔时间(INTERVAL)600秒.

日志存放位置/var/log/atop/atop_YYYYMMDD,是二进制内容,可以这样查看:

atop -r /var/log/atop/atop_YYYYMMDD 按t键切换到下一个采集点.

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux CPU所有进程占用率突然升高时,可能存在以下原因: 1. 异常负载:系统可能面临异常的负载,例如大量的并发请求或运行了占用大量CPU资源的任务。这可能导致CPU使用率急剧上升。 2. 系统进程:某些系统进程可能会在特定情况下消耗大量的CPU资源。例如,更新、日志记录或其他系统操作可能会导致CPU占用升高。 3. 资源竞争:其他运行进程可能与CPU资源发生了竞争。例如,当多个进程争夺相同的资源或执行相似的操作时,它们可能会导致CPU占用率上升。 4. 错误的进程:可能有一个或多个进程出现了错误,导致它们不正常地消耗CPU资源。这可能是由于代码逻辑错误、死循环或其他原因引起的。 5. 定时任务或计划任务:某些计划任务或定时任务可能会在特定时刻触发,导致CPU占用率突然升高。 在遇到此类情况时,可以采取以下措施: 1. 使用系统监控工具:通过系统监控工具(如top、htop或sar)查看CPU占用进程,以确定正在占用CPU资源的进程是哪个。 2. 终止或重启进程:对于占用大量CPU资源的进程,可以通过终止或重启该进程来释放CPU资源。 3. 检查系统资源:检查系统的可用资源,确保系统有足够的CPU、内存和磁盘空间。 4. 优化代码或配置:如果是应用程序造成的CPU占用升高,可以对代码进行优化,减少资源消耗。如果是配置问题,可以调整配置以降CPU占用率。 5. 检查日志文件:检查系统的日志文件,寻找可能的错误或警告信息,以确定是否存在其他异常行为。 最后,如果问题无法解决,可以考虑咨询专业的系统管理员或技术支持团队,以获取更详细和针对性的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值