Canonical 提出了加速睡眠模式啟動的補丁

規範公司 建議 Linux 核心開發者的郵件列表上有一組帶有實作的補丁 機會性記憶清除 (「機會性記憶體回收」),它可以讓您顯著減少進入睡眠模式所需的時間。 透過主動呼叫不包含唯一資訊、從睡眠模式返回後可以動態恢復的輔助記憶體結構的釋放操作來實現最佳化(例如,區域 匿名記憶 以及各種記憶體頁快取)。 主要想法是,刪除不必要的資料後,進入睡眠模式之前要保存的記憶體映像的大小會減少,因此,寫入記憶體映像和從慢速媒體讀取記憶體映像所需的時間會減少。

預設情況下,在儲存休眠內存轉儲時,核心會按所有快取的原樣保存內存,但有一個標準功能,可以透過在進入休眠的初始階段模擬資源短缺情況來釋放不必要的結構。 可以使用“/sys/power/image_size”參數啟動此功能,並顯著減少進入睡眠模式所需的時間。 Canonical 建議再增加兩個參數「/sys/power/mm_reclaim/run」和
“/sys/power/mm_reclaim/release”,這將允許您提前觸發釋放不必要的結構,以便盡快執行到睡眠模式的實際轉換,並且從睡眠模式返回所需的時間與當使用內核參數“/sys /power/image_size」中的現有參數時。

在具有8 GB RAM 和8 GB 交換分區、內存利用率為85% 的系統上進行的測試表明,在預設設定(image_size=default) 下,啟動進程時進入睡眠模式的時間從51.56 秒減少到4.19 秒.進入睡眠模式前 60 秒清除多餘記憶體。睡眠模式。 透過減少儲存的記憶體映像的大小,恢復時間從 26.34 秒減少到 5 秒。 當系統開啟標準模式清除多餘記憶體時(image_size=0),進入睡眠模式的時間從73.22秒減少到5.36秒,從睡眠模式返回的時間幾乎沒有變化(僅減少了秒的一小部分,從5.32 到5.26 秒)。

在需要非常快速地切換到睡眠模式並且可以提前預見這種轉換的需要的情況下,可能需要所提出的方法。 例如,在雲端系統中,低優先順序的虛擬環境(現場環境 Amazon EC2 中)可以隨著主環境資源消耗的增加而動態休眠並釋放佔用的記憶體。 當主要環境的負荷減少時,低優先環境將從睡眠模式返回。 在這些條件下,為了維持適當的服務質量,盡量減少進入和退出睡眠模式所需的時間非常重要。 當主負載達到一定水準(高於導致低優先環境凍結的水平)時,可以觸發搶佔式清潔階段。

來源: opennet.ru

添加評論