Chinaunix首页 | 论坛 | 博客
  • 博客访问: 650213
  • 博文数量: 171
  • 博客积分: 2389
  • 博客等级: 大尉
  • 技术积分: 1516
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-24 14:18
文章分类

全部博文(171)

文章存档

2014年(20)

2013年(51)

2012年(40)

2011年(59)

1970年(1)

我的朋友

分类: IT业界

2011-12-13 14:42:47

最近在设置一个实时、低延迟Linux系统时,我遭遇了,至少作为一名系统管理员会这样的一头雾水。

当前戴尔服务器采用的是可在闲置时保持低电压状态的处理器。闲置状态称为“C状态”。

C0状态是正常运行状态。如果一个处理器置于较高级别的C状态,就可以节省电力,但处理器也得花更长的时间在必要时再次开始执行代码。当调度代码即将在闲置处理器上运行时,这种迟缓导致了延迟时间的略微加长。之所以这样,是因为非0的C状态会从内部关闭处理器的某些组件,需要花费时间让处理器重回C0状态。C状态的级别越高,越能节省电力,但产生的延迟也越长。

对于大多数系统,这样相当值得 - 让处理器重回C0状态所需的若干微秒的延迟不会造成问题。然而,某些应用程序要求系统延迟极低,即使耗费较多电力也在所不辞。考虑到这一点,很多戴尔系统允许在BIOS系统设置工具程序中禁用C状态。

然而,最近的Linux核心(例如用于红帽企业级Linux 6 的核心)包含了针对英特尔处理器的C状态驱动程序,称为“intel_idle”。该驱动程序试图将C状态应用于英特尔处理器 - 即使BIOS系统设置中已经禁用C状态。毫不奇怪,这会引起一定的混乱。想看看您的系统是否在使用这个驱动程序?请在您的核心信息中搜索“intel_idle”。

如果您努力最小化系统延迟,想要禁用C状态,请注意:在BIOS设置中关闭C状态可能还不够。如果发现正在使用intel_idle C状态驱动程序,您可以使用核心参数“intel_idle.max_cstate=0”来禁用intel_idle驱动程序,至此,Linux应恢复为采用由BIOS提供的ACPI(高级配置和电源管理接口)表开展C状态控制。

文章来源于DELL官网,更多精彩内容请访问DELL官方社区或DELL解决方案专区

阅读(873) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~