首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >造成高中断和上下文切换的原因

造成高中断和上下文切换的原因
EN

Server Fault用户
提问于 2009-10-07 22:42:07
回答 3查看 6.2K关注 0票数 2

我有一个四核,我在munin (监视中断和上下文切换)上发现,我的中断和上下文开关每秒高达25k,而平均有一段时间是250。

不知道发生了什么,也不知道这意味着什么,只是根据我的监测工具,这是一个异常现象。

这发生在我的一个openVZ虚拟容器中。

注意:同时,负载增加到2.5,CPU使用率在110%的系统,15%的用户和100%的IOwait。

我已将/proc/中断的输出附加在主机上。

代码语言:javascript
复制
           CPU0       CPU1       CPU2       CPU3       
  0:   48039108   56660082   56431151   51696624    IO-APIC-edge  timer
  1:          0          3          0          0    IO-APIC-edge  i8042
  4:          4          4          1          3    IO-APIC-edge  serial
  8:          1          0          0          0    IO-APIC-edge  rtc
  9:          0          0          0          0   IO-APIC-level  acpi
 12:          4          0          0          0    IO-APIC-edge  i8042
 50:         15         16         16         16   IO-APIC-level  ata_piix
 66:      11113          0          0   56276172         PCI-MSI  eth0
169:   12839820    4849263       1080       1167   IO-APIC-level  ioc0
225:          6          7          5          5   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb4
233:          0          0          0          0   IO-APIC-level  uhci_hcd:usb3
NMI:      17173      16340      16694      17306 
LOC:  214221117  214220936  214196385  214196306 
ERR:          0
MIS:          0
EN

回答 3

Server Fault用户

回答已采纳

发布于 2010-01-08 19:38:25

这将是一个多线程应用程序做了很多锁定。每次它锁定时,CPU将抢占它的量程,并允许另一个线程运行。您可以编写M/T应用程序,它们花费所有时间在线程之间晃动,而这些应用程序都没有完成任何有用的工作,而且由于它们导致了所有这些上下文切换,CPU花在切换线程上的时间比线程本身要花的时间还要多。

看看在这些高峰期间,应用程序的CPU使用率是否会出现尖峰。

票数 3
EN

Server Fault用户

发布于 2010-01-09 13:53:05

这可能是监测系统产生的一个数值伪影,由很短的时间切片造成。也许这只是你在这里看到的抽样效果。

票数 0
EN

Server Fault用户

发布于 2009-10-08 00:29:08

可能是linux (CONFIG_HZ)被设置为以250 at的频率定期触发吗?检查内核配置文件。还有其他频率可供选择。

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

https://serverfault.com/questions/72337

复制
相关文章

相似问题

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