增加 Linux 計時器頻率將帶來效能和最佳化方面的好處

在某些時候我們 我們敢和州長們一起玩 在我們的系統中,這樣做是為了獲得一些效能改進或為了某些特定目的,例如工作負載、應用程式、遊戲等。

這種修改, 它們通常不包含在一般分佈中 這是可以理解的,因為這意味著我們團隊的資源增加或減少(視情況而定)。

我提到這一點是因為最近 谷歌工程師建議修改 la 默認設置 德爾 Linux 核心定時器,將其中斷率從250Hz提高到1000Hz。

這個變化 意味著任務切換頻率更高 並減少任務調度程序中的時間量,這在某些場景下,效率還可以進一步提升。 目前來說,250Hz被認為是效能、延遲、功耗之間的平衡。

提出該提案的動機

支持的主要論點 這一變化是 在具有 120Hz 顯示器的裝置上進行效能最佳化,在個人電腦和行動裝置上越來越常見。在目前250Hz的設定下,時間量化不準確性約佔幀時間的一半,這會影響資源分配效率。

此外,據觀察 動態電壓和頻率調整機制 (DVFS) 傾向於採取正向的頻率選擇策略 以避免速度減慢。當任務已完成處理但處理器由於其時間段尚未到期而繼續以更高頻率運行時,這可能會導致不必要的功耗。

成長 任務切換頻率 將允許:

  • 提高了動態頻率管理(DVFS)的效率。
  • 更精確地分配任務調度時間。
  • 增加了更新 CPU 負載統計的頻率。
  • 減少待處理任務的等待時間。
  • 反對該修正案的論點

就其本身而言, 另一位Google工程師表達了他的不同意見 對此, 將定時器頻率保持在 250 Hz 對低功耗設備最有利,例如物聯網板和行動裝置。

根據他的評估, 將頻率增加到 1000 Hz 可能會導致功耗增加。 例如,在 Android 裝置上,在某些情況下處理器消耗會增加高達 7%。

另外, 定時器頻率越高代表重新啟動越頻繁 CPU 的。在 250 Hz 時,安排在 t+1 ms、t+2 ms、t+3 ms 和 t+4 ms 的計時器被分組為一次喚醒,而在 1000 Hz 時則會有四次單獨的喚醒,這可能會增加功耗。

性能測試結果

關於此案,門戶網站 Phoronix 進行了一系列測試 在搭載 AMD Ryzen 9 9950X CPU 的 PC 上評估頻率變化的影響。結果好壞參半:

  • M1000 Hz 下的性能更佳:
    駱駝.cpp
    nginx的
    超級卡丁車

    核心編譯時間
  • 在 250Hz 下可獲得最佳效能:
    Darktable
    PostgreSQL的
    不敗
    異能
    混合器
    SVT-AV1
    RawTherapee

至於 能源消耗,結果 以下:

  • 設定為 1000 Hz:
    平均耗電量:144,2 W
    最低耗電量:0,18 W
    最大耗電量:202,13 W
  • 設定為 250 Hz:
    平均耗電量:144,37 W
    最低耗電量:0,07 W
    最大耗電量:202 W

最後,值得一提的是,將核心定時器中斷率提高到 1000 Hz 在某些用例中具有優勢,特別是在需要更頻繁任務切換的應用程式和具有高刷新率顯示的裝置上。但它在功耗方面也有缺點,特別是在低功耗設備和以能源效率為優先的環境中。

目前, 該提案仍在辯論中 在社群中,其採用將取決於對不同使用情境的影響的更深入分析。