4

阅读时/proc/stat,我得到这些返回值:

cpu  20582190 643 1606363 658948861 509691 24 112555 0 0 0                      
cpu0 3408982 106 264219 81480207 19354 0 35 0 0 0                               
cpu1 3395441 116 265930 81509149 11129 0 30 0 0 0                               
cpu2 3411003 197 214515 81133228 418090 0 1911 0 0 0                            
cpu3 3478358 168 257604 81417703 30421 0 29 0 0 0                               
cpu4 1840706 20 155376 83328751 1564 0 7 0 0 0                                  
cpu5 1416488 15 171101 83410586 1645 13 108729 0 0 0                            
cpu6 1773002 7 133686 83346305 25666 10 1803 0 0 0                              
cpu7 1858207 10 143928 83322929 1819 0 8 0 0 0

一些消息来源声明只读取前四个值来计算 CPU 使用率,而一些消息来源说读取所有值。

我是否只读取前四个值来计算 CPU 利用率?值user, nice,systemidle? 还是我需要所有的价值观?或者不是全部,而是超过四个?我需要iowait,irq还是softirq?

cpu  20582190 643 1606363

与整条线相比。

cpu  20582190 643 1606363 658948861 509691 24 112555 0 0 0

编辑:一些消息来源还指出iowait已添加到idle.

在计算特定进程的 CPU 使用率时,方法是否不同?

4

1 回答 1

2

手册页指出它因架构而异,并且还提供了几个示例来描述它们的不同之处:

在 Linux 2.6 中,这一行包括三个额外的列: ...

从 Linux 2.6.11 开始,有第八列,...

从 Linux 2.6.24 开始,有第九栏,...

当“有些人说只能使用......”时,他们可能没有考虑到这些。

关于计算是否因 CPU 不同:您将在 /proc/stat 中找到与“cpu”、“cpu0”、“cpu1”、...相关的行。“cpu”字段是各个 CPU 对应字段的所有聚合(不是平均值)。您可以使用简单的 awk one-liner 自行检查。

中央处理器 84282 747 20805 1615949 44349 0 308 0 0 0

cpu0 26754 343 9611 375347 27092 0 301 0 0 0

cpu1 12707 56 2581 422198 5036 0 1 0 0 0

cpu2 33356 173 6160 394561 7508 0 4 0 0 0

cpu3 11464 174 2452 423841 4712 0 1 0 0 0

于 2013-02-28T14:58:40.957 回答