linux - 正常运行时间top CPU usage : What should I believe, 为什么会有这种差异?

标签 linux load embedded uptime

我的嵌入式设备出现性能问题:

# uptime 
 14:59:39 up  5:37, load average: 1.60, 1.50, 1.53

对于单核系统来说非常糟糕...:-p!但是,如果我查看 top 实用程序,我总是有大约 80% 的空闲时间!

Mem: 49020K used, 75960K free, 0K shrd, 0K buff, 21476K cached
CPU: 12.5% usr  4.8% sys  0.0% nic 81.7% idle  0.0% io  0.9% irq  0.0% sirq
Load average: 1.30 1.42 1.51 1/80 18696

看了一些文章,我还是比较相信uptime这个命令。但为什么会有这种差异呢?我的 CPU 真的空闲吗??!

最佳答案

Load不仅衡量有多少进程处于R状态(可运行,可以使用CPU时间),也衡量处于D状态(不可中断 sleep ,通常等待IO)的进程。您可能有一个处于 D 状态的进程正在增加负载,但不使用 cpu。此命令将向您显示所有当前对负载有贡献的进程:

ps aux | awk '$8~/[RD]/'

查看该输出并查看是否有处于 D 状态的命令(在第 8 列中)

关于linux - 正常运行时间top CPU usage : What should I believe, 为什么会有这种差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491353/

相关文章:

c++ - 没有 X 的 Raspberry Pi 上的 SDL2?

c - 如何将c程序编译成elf格式?

jQuery.load 不使用 document.write 执行 javascript

linux - 带有 Yocto 的 Java - 没有匹配的 bb 文件

谁能建议我如何在移远MC60模块中编写自己的BLE AT命令头文件,仅供引用?

linux - 使用 awk 或 sed 获取两个单词之间的值

linux - 创建一个没有挂载的虚拟软盘镜像?

java - 如何在 REST Web 服务中接收大型 XML 文件

xml - Linq-Xml [DirectoryNotFound或NullReferenceException]

c - 从 EEPROM 读取,并知道它不是在启动时写入的