免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2186 | 回复: 3
打印 上一主题 下一主题

[CPU及多核] SMP,用top看到的cpu利用率是根据哪个cpu计算的 [复制链接]

论坛徽章:
2
射手座
日期:2014-09-03 00:18:022015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-17 13:21 |只看该作者 |倒序浏览
本帖最后由 wLiu2007 于 2014-07-17 13:21 编辑

请教个问题,我系统有2个cpu,其中1个task在这2个cpu之间来回切换,想请教一下用top看到的这个task的cpu利用率是基于哪个cpu的,是怎么计算来的?

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
2 [报告]
发表于 2014-07-17 14:09 |只看该作者
top中看到的cpu占用率是基于时钟中断采样而来的。举例:
当task a正在cpu1上运行时,突然来了个时钟中断,此时时钟中断中会更新top需要的相关计数,因此,这个tick的运行时间就会算在task a的头上,即使task a才刚刚开始运行不到一个tick的时间。
当cpu1正在处理软中断,突然来了时钟中断,那么该tick仍会算到当前cpu的current进程的头上。
所以,top中看到的cpu占用率不是很准确,在一些情况下甚至可能会对用户产生严重误导。
对于你的问题,要看task的具体切换情况,总的来说,如果时钟中断来时,task在哪个cpu上跑,那就算到这个cpu上了。

论坛徽章:
0
3 [报告]
发表于 2014-07-17 20:26 |只看该作者
回复 2# humjb_1983
hi , J
软中断有个专门的字段吧? 软中断上下文或者softirq线程都算到sirq里
  1. if (hardirq_count() - hardirq_offset || (p->flags & PF_HARDIRQ))  
  2.         cpustat->irq = cputime64_add(cpustat->irq, tmp);  
  3.     else if (softirq_count() || (p->flags & PF_SOFTIRQ))  
  4.         cpustat->softirq = cputime64_add(cpustat->softirq, tmp);  
  5.     else if (p != rq->idle) {  
  6.         cpustat->system = cputime64_add(cpustat->system, tmp);  
  7.         cpuacct_charge(p, cputime);  
  8.     } else if (atomic_read(&rq->nr_iowait) > 0)  
  9.         cpustat->iowait = cputime64_add(cpustat->iowait, tmp);  
  10.     else  
  11.         cpustat->idle = cputime64_add(cpustat->idle, tmp);  
  12.     /* Account for system time used */  
  13.     acct_update_integrals(p);  
复制代码
  1. Tasks: 457 total,   1 running, 455 sleeping,   1 stopped,   0 zombie
  2. Cpu0  :  3.8%us,  0.8%sy,  0.0%ni, 94.3%id,  1.1%wa,  0.0%hi,  0.0%si,  0.0%st
  3. Cpu1  :  3.4%us,  0.7%sy,  0.0%ni, 95.7%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
  4. Cpu2  :  3.7%us,  0.9%sy,  0.0%ni, 95.4%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
  5. Cpu3  :  3.8%us,  1.0%sy,  0.0%ni, 89.3%id,  5.7%wa,  0.0%hi,  0.0%si,  0.0%st
  6. Cpu4  :  2.4%us,  0.5%sy,  0.0%ni, 97.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
  7. Cpu5  :  2.7%us,  1.6%sy,  0.0%ni, 94.6%id,  0.8%wa,  0.0%hi,  0.4%si,  0.0%st
  8. Cpu6  :  2.3%us,  0.4%sy,  0.0%ni, 97.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
  9. Cpu7  :  2.3%us,  0.4%sy,  0.0%ni, 97.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
  10. Mem:   8053044k total,  7203996k used,   849048k free,   844292k buffers
复制代码

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
4 [报告]
发表于 2014-07-18 08:34 |只看该作者
chenyu105 发表于 2014-07-17 20:26
回复 2# humjb_1983
hi , J
软中断有个专门的字段吧? 软中断上下文或者softirq线程都算到sirq里

呵呵,我这里说的是,top中,每个进程的占用率,不是总体的占用率,总体占用率确实能体现si和hi等信息,但其实还是不够准确。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP