工程師提出將Linux核心的預設定時器頻率提高到1000Hz的新建議
Google工程師Qais Yousef 週日發布了一個補丁,建議將Linux 核心的預設計時器頻率從250Hz 提高到1000Hz。這位Google 工程師認為,目前的Linux 核心預設頻率可能會導致調度器決策出現問題,例如不精確的時間片、負載平衡延遲、統計更新延遲以及其他相關問題。 Qais Yousef 認為核心最好採用1000Hz 的預設頻率:

“Android 和桌上型系統等常用的螢幕配置是 120Hz。這為任務提供了8ms 的工作時間。4 毫秒是這一時間的一半,這使得在喚醒時做出非常正確的決定的負擔比必要時更重。這也增加了有效利用系統以保持最佳性能/瓦特的定義。舉例來說,我們嘗試將DVFS 功能不化,確保激進地提高頻率。
一般來說,工作負載的截止日期越來越短,這並不是UI 管道所獨有的。
我相信HZ_250 是默認設置,作為對電池電量設備的權衡,這些設備可能不喜歡頻繁的TICKS 可能會不必要地耗盡電池。 但據我了解,目前的NOHZ 狀態應該足以減輕這些擔憂。 最近新增的RCU_LAZY 進一步幫助在空閒場景中保持較長的TICK。
正如Saravana 向我指出的那樣,較長的TICK 確實間接幫助了定時器的凝聚,這意味著它可以掩蓋驅動程式/任務要求頻繁定時的問題,從而阻止進入更深的空閒狀態(對於許多系統而言,4 毫秒是允許進入更深空閒狀態的較高值)。 但也可以說這是這些驅動程式/任務的問題所在。
更快的TICK 仍可能導致更高的功率,但不是由於TICK 活動。 系統的響應速度更快(如預期),預計較高頻率的駐留會更高,因為它們會意外地被卡在較低頻率下。 [1] 中的系列試圖改進調度程序對響應速度的處理,並為用戶/應用程式提供更好地滿足其需求的方法,包括選擇退出以獲得足夠的響應(在上述系列中,ramup_multiplier 為0)”
長期以來,Linux 核心定時器頻率一直是爭論和不同意見的來源。 不過現在核心預設頻率為1000Hz,而不是250Hz,似乎是合乎邏輯的。
更改預設頻率的補丁現已提交審核/討論。