如果我有无滴答和高分辨率计时器,则需要1000 HZ linux内核吗?


13

我正在尝试提高服务器的性能。我有一些进程需要低抖动(方差小于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)怎么样?


操作系统分发详细信息/版本?
ewwhite 2012年

Ubuntu 11.10 64位服务器Linux 3.3内核。
鲍勃

您有大量的用户模式负载;系统时间相对而言可以忽略不计。我不建议在那里绕内核可调参数跳舞。还是希望获得类似于实时的计划?
yrk 2012年

那么,您是在说如果系统使用率较低,这对响应性没有任何影响吗?
鲍勃

Answers:


4

我正在尝试提高服务器的性能。我有一些进程需要低抖动(方差小于10ms)。

实际上,任何实时都不会提高性能,它会使整个系统运行更平稳,但速度会稍慢一些。换句话说,它是吞吐量与延迟的关系。如果确实需要它,那么有几种选择:

  • 使用300 Hz甚至1KHz PREEMPT,并且不要使用滴答作响
  • 使用niceschedtool根据您的需要分配适当的优先级/类别
  • 尝试RTBFS

使用无滴答怎么办?
鲍勃

1
@Bob,这对于节电非常有用,但是如果您担心延迟,建议您将其关闭,例如ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt
poige 2012年

3

如果低抖动对您很重要,可以,您可能要同时使用1000hz和PREEMPT。

我们认为,如果这些进程确实对时间敏感,那么您可能需要一些面向实时的补丁程序/内核,或者至少需要某些进程级别的调度参数,例如rtprio。

典型用途是音频服务器,例如请参阅jackaudio的建议


3

1)请勿使用无滴答(tickless),它仍然是高度试验性的,除开发人员之外,不建议任何人使用,它也旨在帮助节省功耗。

2)完全可抢占的系统应能提高出勤者的响应能力,而自愿抢占则可用于一般用途(响应性和流通量的混合)。如果您的服务器具有SMP(多核),则您可能应该采用不可抢占的方式,因为大多数工作将在其核上执行并且没有中断,这通常需要1)花费时间2)垃圾回收

3)1000Hz是台式机的值,它引入了开销,但允许例如玩游戏和玩东西。对于视频,建议将300 Hz作为值(这样,东西可以重新安排时间,并且您仍然不会错过帧),而100Hz可以提供最佳的吞吐量(尽管不适用于低延迟网络东西)。

如果要尽可能稳定(不使用RT修补程序),则应进行以下操作:周期滴答(稳定性)不可抢占(稳定性)计时器频率(取决于您,最佳响应时间和低延迟时间为1000,对于最大响应时间为100)最佳吞吐量,但计时器的分辨率为10ms,例如,东西将至少运行10ms)

希望这会有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.