首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >%CPU列和顶部负载

问%CPU列和顶部负载
EN

Stack Overflow用户
提问于 2012-09-07 22:16:05
回答 1查看 17K关注 0票数 6

我的一个c++应用程序在顶部显示了非常高的CPU%,但负载非常低。myapp总是占用大约30%,显示在" top“命令的最顶端,但是负载总是像0.00,所以我很困惑负载和%CPU列之间的区别是什么?

代码语言:javascript
复制
top - 14:09:54 up 62 days,  2:52,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 124 total,   1 running, 123 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni, 99.3%id,  0.3%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   2054824k total,  1440364k used,   614460k free,     4644k buffers
Swap:  4194296k total,    16604k used,  4177692k free,   610784k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                         
14774 root      20   0 1201m 9416 1856 S 28.3  0.5 376:13.50 myapp                                                                                        
14746 mysql     20   0 2012m 157m 3888 S  0.3  7.8   5:01.08 mysqld                                                                                          

有人能告诉我%CPU和load之间的区别吗?

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-07 22:19:35

例如top中显示的%CPU是临时的,即当时正在使用的是什么,而uptime显示的load是一个平均值:

它通常以三个数字的形式出现,这三个数字表示最后一分钟、五分钟和十五分钟期间的系统负载。

来自Wikipedia。

随着时间的推移,这些应该会收敛,但当%CPU是100%最大值时,尽管有进程在等待,但负载可能会高于1。例如:

例如,在单

系统上,可以将平均负载"1.73 0.50 7.98“解释为:

在最后一分钟内,CPU过载了73% (1个CPU有1.73个可运行的进程,因此0.73个进程必须等待一个轮次)

在过去的5分钟内,CPU负载不足50% (没有进程必须等待轮流)

在过去的15分钟内,CPU过载了698% (1个CPU有7.98个可运行的进程,因此6.98个进程必须等待一个轮次)

更新:

我现在才注意到您的进程使用了28%的CPU,而top报告两个CPU都>99%空闲。我无法在我的Linux系统(Ubuntu 12.04,英特尔i7-3770K四核HT)上重现它,请看下面的截图。

CPU正常设置,无负载,显示所有核心的平均使用率:

代码语言:javascript
复制
top - 18:10:04 up  7:50,  2 users,  load average: 0.00, 0.05, 0.15
Tasks: 157 total,   1 running, 156 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si, 0.0%st
Mem:  16528224k total,  1124956k used, 15403268k free,   148772k buffers
Swap: 15624188k total,        0k used, 15624188k free, 670460k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    7022 root      20   0     0    0    0 S    0  0.0   0:00.14 kworker/0:1        
    1 root      20   0  3640 2060 1324 S    0  0.0   0:01.23 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:00.14 ksoftirqd/0        
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0

一个核心上的CPU满载(运行 yes > /dev/null**),显示所有核心的平均使用率:**

代码语言:javascript
复制
top - 18:11:58 up  7:52,  2 users,  load average: 0.11, 0.07, 0.15
Tasks: 157 total,   2 running, 155 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.5%us,  0.0%sy,  0.0%ni, 87.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16528224k total,  1124880k used, 15403344k free,   148824k buffers
Swap: 15624188k total,        0k used, 15624188k free,   670472k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 8254 tim       20   0  4188  280  228 R  100  0.0   0:04.88 yes                
    1 root      20   0  3640 2060 1324 S    0  0.0   0:01.23 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:00.15 ksoftirqd/0        
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0        

CPU与2)相同,但显示了每个核心的使用率:

代码语言:javascript
复制
top - 18:13:47 up  7:54,  2 users,  load average: 0.86, 0.36, 0.24
Tasks: 157 total,   2 running, 155 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16528224k total,  1124756k used, 15403468k free,   148840k buffers
Swap: 15624188k total,        0k used, 15624188k free,   670472k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 8254 tim       20   0  4188  280  228 R  100  0.0   1:53.98 yes                
    1 root      20   0  3640 2060 1324 S    0  0.0   0:01.23 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:00.15 ksoftirqd/0        
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0        

N.B.:我确实注意到top显示的第一个统计数据并没有显示yes的100%cpu使用率,这与您已有的类似。也许这就是问题所在?

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12319894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档