Кампанія Canonical прапанавала патчы для паскарэння актывацыі спячага рэжыму

Кампанія Canonical прапанавала у спісе рассылання распрацоўнікаў ядра Linux набор патчаў з рэалізацыяй апартуністычнай чысткі памяці («opportunistic memory reclaim»), якая дазваляе істотна скараціць час пераходу ў спячы рэжым. Аптымізацыя дасягаецца за кошт папераджальнага выкліку аперацыі вызвалення другасных структур памяці, якія не змяшчаюць унікальных звестак і могуць быць дынамічна адноўлены пасля вяртання з спячага рэжыму (напрыклад, вобласці ананімнай памяці і розныя кэшы старонак памяці). Асноўная ідэя ў тым, што пасля выдалення лішніх дадзеных скарачаецца памер выявы памяці для захавання перад пераходам у спячы рэжым і, адпаведна, патрабуецца менш чакай на яго запіс і чытанне з павольнага носьбіта.

Па змаўчанні пры захаванні дампа памяці для спячага рэжыму ядро ​​захоўвае памяць як ёсць са ўсімі кэшамі, але прадугледжана штатная магчымасць вызвалення лішніх структур праз сімуляцыю ўмоў недахопу рэсурсаў на пачатковай стадыі пераходу ў спячы рэжым. Дадзеная магчымасць можа быць актываваная пры дапамозе параметра "/sys/power/image_size" і прыводзіць да прыкметнага памяншэння часу пераходу ў спячы рэжым. Canonical прапануе дадаць яшчэ два параметры "/sys/power/mm_reclaim/run" і
"/sys/power/mm_reclaim/release", якія дазволяць выклікаць вызваленне лішніх структур загадзя для таго каб фактычна пераход у спячы рэжым быў выкананы як мага хутчэй, а вяртанне са спячага рэжыму заняло прыкладна столькі ж часу, што і пры ўжыванні ўжо існага ў ядры параметру "/sys/power/image_size".

Тэставанне на сістэме з 8 ГБ АЗП і 8 ГБ часткай падпампоўкі пры ўтылізацыі 85% памяці паказала ў наладах па змаўчанні (image_size=default) зніжэнне часу пераходу ў спячы рэжым з 51.56 да 4.19 секунд пры ініцыяванні працэсу ачысткі лішняй памяці за 60 секунд спячы рэжым. За кошт скарачэння памеру захоўваецца выявы памяці час аднаўлення знізілася з 26.34 да 5 секунд. Пры ўключэнні ў сістэме штатнага рэжыму ачысткі лішняй памяці (image_size=0) час пераходу ў спячы рэжым скарацілася з 73.22 да 5.36 секунд, а час вяртання са спячага рэжыму практычна не змянілася (скарацілася толькі на дзелі секунды, з 5.32 да 5.26 сек.)

Прапанаваны метад можа быць запатрабаваны ў сітуацыях, калі неабходна вельмі хутка перайсці ў спячы рэжым і ёсць магчымасць загадзя прадбачыць неабходнасць такога пераходу. Напрыклад, у хмарных сістэмах нізкапрыярытэтныя віртуальныя асяроддзі (spot-акружэння у Amazon EC2) могуць дынамічна пераводзіцца ў спячы рэжым і вызваляць займаную памяць пры росце спажывання рэсурсаў першаснымі асяроддзямі. Пры зніжэнні нагрузкі на першасныя асяроддзі нізкапрыярытэтныя асяроддзі вяртаюцца з спячага рэжыму. Пры дадзеных умовах для падтрымання належнай якасці сэрвісу важна скараціць да мінімуму час пераходу ў спячы рэжым і выхаду з яго. Запуск фазы папераджальнай ачысткі можа вырабляцца пры дасягненні вызначанага ўзроўня асноўнай нагрузкі, якая папярэднічае ўзроўню, які прыводзіць да замарозкі нізкапрыярытэтных акружэнняў.

Крыніца: opennet.ru

Дадаць каментар