谷歌工程師週四在他們的 KVM-CPUFreq 驅動程序上發布了最初的“徵求意見”補丁,這是他們在基於 KVM 的虛擬機中改善動態電壓和頻率縮放行為以及任務放置的努力的一部分。這項工作導致在 Linux VM 中運行的任務的原始性能和每瓦性能有了很大的改進。

Google 的 David Dai 昨天在內核郵件列表上寫道:

這個補丁系列是 Saravana 在 LPC 2022 上發表的題為“CPUfreq/sched 和 VM 來賓工作負載問題”的演講的延續.談話的要點是,與在主機中運行相同的工作負載相比,在來賓 VM 中運行的工作負載會獲得糟糕的任務放置和 DVFS [動態電壓和頻率縮放] 行為。實際上,VM 內的線程沒有 EAS [能量感知調度]。即使我們假設虛擬化開銷為零,僅通過在 VM 中運行工作負載也會使功率和性能變得糟糕。

我們一直在迭代來賓和主機之間通信的不同選項、應用來自來賓/主機的信息的方式等,以找出我們可以獲得的最佳性能和功率改進。

當前狀態下的補丁系列並不意味著登陸上游內核。我們發送這個補丁系列是為了分享我們目前的進展和數據。該補丁系列旨在輕鬆挑選並在各種設備上進行測試,以了解這可能會給其他設備帶來哪些性能和功耗優勢。

在這個系列中,工作負載運行在VM 獲得與在主機中運行時相同的任務放置和 DVFS 處理。

正如預期的那樣,我們看到了顯著的性能提升和更好的性能/功率比。如果有其他人想針對您的 VM 工作負載嘗試此方法並報告結果,我們將不勝感激。

這個想法是通過以下方式改進 VM CPUfreq/sched 行為:
-讓來賓內核通過考慮主機 CPU 架構/類型和頻率來進行準確的負載跟踪。
-與主機共享 vCPU 運行隊列利用率信息,以便主機可以在主機端進行適當的頻率縮放和任務放置。

基準測試結果非常有希望,例如何時在 Chromebook 上的虛擬機中運行 Android,PCMark 的加權總性能提高了 19%,照片編輯速度提高了 45%。 Roblox 性能基準使用 KVM-CPUFreq 提高了 57%,而能效提高了 26%。
通過此 RFC 內核補丁系列了解有關此 KVM-CPUFreq 工作的更多詳細信息現在正在討論中。

Categories: IT Info