微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解Linux最高CPU利用率输出

我正在使用一个在Debian下运行的单核心小型ARM处理器,并且在理解top的cpu利用率输出时遇到问题,请参阅:

top - 15:31:54 up 30 days,23:00,2 users,load average: 0.90,0.89,0.87 Tasks: 44 total,1 running,43 sleeping,0 stopped,0 zombie cpu(s): 65.0%us,20.3%sy,0.0%ni,14.5%id,0.0%wa,0.0%hi,0.3%si,0.0%st Mem: 61540k total,40056k used,21484k free,0k buffers Swap: 0k total,0k used,0k free,22260k cached PID USER PR NI VIRT RES SHR S %cpu %MEM TIME+ COMMAND 26028 root 20 0 2536 1124 912 R 1.9 1.8 0:00.30 top 31231 root 19 -1 45260 964 556 S 1.9 1.6 1206:15 owserver 3 root 15 -5 0 0 0 S 0.3 0.0 0:08.68 ksoftirqd/0 694 root 20 0 28640 840 412 S 0.3 1.4 468:26.74 rsyslogd

在所有的进程中,%cpu是非常低的,在这个例子中,它们都是4,4%(所有其他的进程都在0%)。但是第3行的all cpu显示65%us和20%sy对于一个非常高的价值 – 顺便说一下,这就是系统的感觉:非常慢: – (系统几乎总是处于这种状态:所有进程的cpu非常低,但是用户和系统cpu很高。为什么在顶级工具输出中存在如此高的不一致性?我可以使用什么工具来更好地找出导致高用户+系统cpu利用率的原因 – 顶端在这里似乎毫无用处。

更新 :同时我在这里find了这个线程,讨论了一个类似的问题,但是我不能validation那里写的是什么:

命令正常运行时间显示每1/15/15分钟的平均cpu利用率

这接近于第一行的最高产出为%us +%sy的总和。 但是这个变化更大,也许是每10秒的平均值?

即使在最高输出上看时间较长,%us +%sy的总和总是比所有%cpu的总和高几倍

谢谢Achim

Linux套接字缓冲不平衡

32位应用程序如何在64位Linux上进行系统调用

Windows性能分析工具用作分析器

一个更快? 正则expression式或EndsWith?

Git缓慢克隆到Samba股份时

如何减lessJAVA应用程序的cpu使用率?

为什么在多个系统调用中,TCP套接字的速度变慢?

写多个文件比 写一个文件

为了分析(-pg),为什么我的代码在multithreading下比使用单线程运行速度慢?

IPC的性能:命名pipe道与套接

你应该阅读top的手册manpage来更加敏锐地理解它的输出。 从手册:

cpucpu使用率

自上次屏幕更新以来,任务占用cpu间的份额,表示为总cpu间的百分比。 认的屏幕更新时间是3秒,可以用#top -d ss.tt来改变。 要测量通用cpu使用率,请运行top -S 。

-S:累计时间模式切换

从最后一个被记住的“S”状态开始颠倒。 当“累积模式”打开时,每个进程都列出了它和它的死亡孩子使用的cpu时间。

cpu状态显示摘要区域中。 它们总是以百分比显示,并且是从现在到最后一次刷新之间的时间。

us -- User cpu time The time the cpu has spent running users' processes that are not niced. sy -- System cpu time The time the cpu has spent running the kernel and its processes. ni -- Nice cpu time The time the cpu has spent running users' proccess that have been niced. wa -- iowait Amount of time the cpu has been waiting for I/O to complete. hi -- Hardware IRQ The amount of time the cpu has been servicing hardware interrupts. si -- Software Interrupts The amount of time the cpu has been servicing software interrupts. st -- Steal Time The amount of cpu 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine).

在正常情况下%us +%sy应该总是更高。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐