如果我有无滴答和高分辨率的定时器,1000 HZ的Linux内核必要的?

我正试图提高我的服务器的性能。 我有几个过程需要低抖动(小于10ms差异)。

我在i7-920(4个物理核心,8个HT)上有4个最大的平均负载。 核心用户模式有10个进程,从40%到90%不等。 系统使用率为3%。 总CPU使用率最高为80%。

将内核从100hz设置到1000hz是否可以改善抖动,如果已经设置了无时钟和高分辨率定时器?

这个页面似乎表明它仍然有一些东西。 https://lkml.org/lkml/2009/4/28/401

如何从自愿(PREEMPT_VOLUNTARY)更改为可抢占(PREEMPT)?

如果低抖动对您很重要,那么您可能需要同时使用1000Hz和PREEMPT。

如果这些过程真的是时间敏感的话,那么您可能需要一些更加面向实时的补丁/内核,或者至less是一些进程级的调度参数,比如rtprio。

典型的用途是audio服务器,例如参见来自jackaudio的build议

我正试图提高我的服务器的性能。 我有几个过程需要低抖动(小于10ms差异)。

任何实时性都不会提高性能,事实上,整个系统运行起来会更顺畅,但速度会更慢。 换句话说,它是吞吐量与延迟。 如果真的是你需要的,那么有几个select:

  • 使用300 Hz甚至1KHz,PREEMPT,不要使用无滴答
  • 使用niceschedtool根据您的需要分配适当的优先级/类
  • 试试RT或BFS

1)不要使用无滴答,它仍然是高度实验性的,不build议任何人,除了开发它的开发人员,这也是为了帮助powersave。

2)完全可抢占的系统应该增加桌面的响应能力,而自愿抢占是一般用途(混合响应和输出)。 如果你的服务器得到了SMP(多核),你应该去争取不可抢占的,因为大多数工作将在他们的内核上执行,而不会中断,这通常需要1)花时间2)垃圾caching

3)1000Hz是引入开销的桌面值,但允许例如玩游戏和东西。 300赫兹是video推荐的价值(所​​以东西可以重新安排,你仍然不会错过帧),而100赫兹提供最佳的吞吐量(虽然不适合低延迟networking的东西)。

如果你想要保持稳定(不使用RT修补程序),你应该去:周期性蜱(稳定性)不可抢占(稳定性)定时器频率(最高为1000,最好的响应速度和低频率,100最好的troughput但定时器上的10毫秒分辨率,例如东西将运行至less10毫秒)

希望这有些帮助。