工程师提出将Linux内核的默认定时器频率提高到1000Hz的新建议

站长云网 2025-02-10 5iter.com 站长云网

Google工程师QaisYousef于周日发布了一个补丁,建议将Linux内核的默认计时器频率从250Hz提高到1000Hz。这位Google工程师认为,当前的Linux内核默认频率可能会导致调度器决策出现问题,例如不精确的时间片、负载平衡延迟、统计更新延迟以及其他相关问题。QaisYousef认为内核最好采用1000Hz的默认频率:

"Android和桌面系统等常用的屏幕配置是120Hz。这为任务提供了8ms的工作时间。4毫秒是这一时间的一半,这使得在唤醒时做出非常正确的决定的负担比必要时更重。这也增加了有效利用系统以保持最佳性能/瓦特的难度。举例来说,我们尝试将DVFS净空定义为TICK的函数,因为它定义了更新统计数据的最坏情况。TICK越大,意味着如果我们想确保不影响性能,就必须过于激进地提高频率。但如果任务没有耗尽所有片段,我们就失去了使用较低频率和节省功耗的机会。

一般来说,工作负载的截止日期越来越短,这并不是UI管道所独有的。

我相信HZ_250是默认设置,作为对电池电量设备的权衡,这些设备可能不喜欢频繁的TICKS可能会不必要地耗尽电池。但据我了解,目前的NOHZ状态应该足以减轻这些担忧。最近添加的RCU_LAZY进一步帮助在空闲场景中保持较长的TICK。

正如Saravana向我指出的那样,较长的TICK确实间接帮助了定时器的凝聚,这意味着它可以掩盖驱动程序/任务要求频繁定时的问题,从而阻止进入更深的空闲状态(对于许多系统而言,4毫秒是允许进入更深空闲状态的较高值)。但也可以说这是这些驱动程序/任务的问题所在。

更快的TICK仍可能导致更高的功率,但不是由于TICK活动。系统的响应速度更快(如预期),预计较高频率下的驻留会更高,因为它们会意外地被卡在较低频率下。[1]中的系列试图改进调度程序对响应速度的处理,并为用户/应用程序提供更好地满足其需求的方法,包括选择退出以获得足够的响应(在上述系列中,ramup_multiplier为0)"

长期以来,Linux内核定时器频率一直是争论和不同意见的来源。不过现在内核默认频率为1000Hz,而不是250Hz,这似乎是合乎逻辑的。

更改默认频率的补丁现已提交审核/讨论。

责任编辑:站长云网