Canonical navrhol záplaty na urýchlenie aktivácie režimu spánku

Kanonický navrhol na mailing listu vývojárov jadra Linuxu sadu záplat s implementáciou oportunistické čistenie pamäte („oportunistická obnova pamäte“), čo vám umožňuje výrazne skrátiť čas potrebný na prechod do režimu spánku. Optimalizácia sa dosiahne proaktívnym volaním operácie uvoľnenia sekundárnych pamäťových štruktúr, ktoré neobsahujú jedinečné informácie a môžu sa dynamicky obnoviť po návrate z režimu spánku (napríklad oblasti anonymná pamäť a rôzne vyrovnávacie pamäte pamäťových stránok). Hlavnou myšlienkou je, že po odstránení nepotrebných údajov sa veľkosť obrazu pamäte, ktorá sa má uložiť pred prechodom do režimu spánku, zmenší, a preto je potrebný kratší čas na jeho zápis a čítanie z pomalého média.

V predvolenom nastavení pri ukladaní výpisu pamäte na hibernáciu jadro ukladá pamäť tak, ako je to so všetkými vyrovnávacími pamäťami, ale existuje štandardná možnosť uvoľniť nepotrebné štruktúry simuláciou stavu nedostatku zdrojov v počiatočnej fáze prechodu do hibernácie. Túto funkciu možno aktivovať pomocou parametra „/sys/power/image_size“ a vedie k výraznému skráteniu času potrebného na prechod do režimu spánku. Canonical navrhuje pridať ďalšie dva parametre „/sys/power/mm_reclaim/run“ a
„/sys/power/mm_reclaim/release“, ktorý vám umožní spustiť uvoľnenie nepotrebných štruktúr vopred tak, aby samotný prechod do režimu spánku prebehol čo najrýchlejšie a návrat z režimu spánku trval približne rovnaký čas ako pri použití existujúceho parametra jadra "/sys/power/image_size".

Testovanie na systéme s 8 GB RAM a 8 GB odkladacou partíciou s 85% využitím pamäte ukázalo v predvolených nastaveniach (image_size=default) skrátenie času prechodu do režimu spánku z 51.56 na 4.19 sekundy pri spustení procesu vymazanie nadbytočnej pamäte 60 sekúnd pred vstupom do režimu spánku. Zmenšením veľkosti uloženej pamäte sa čas obnovy skrátil z 26.34 na 5 sekúnd. Keď systém zapol štandardný režim na vymazanie prebytočnej pamäte (image_size=0), čas prechodu do režimu spánku sa skrátil zo 73.22 na 5.36 sekundy a čas návratu z režimu spánku zostal prakticky nezmenený (skrátil sa iba o zlomok sekundy, od 5.32 do 5.26 sekundy).

Navrhovaný spôsob môže byť žiadaný v situáciách, kedy je potrebné veľmi rýchlo prejsť do režimu spánku a je možné vopred predvídať potrebu takéhoto prechodu. Napríklad v cloudových systémoch, virtuálnych prostrediach s nízkou prioritou (bodové prostredia v Amazon EC2) môže dynamicky hibernovať a uvoľniť obsadenú pamäť so zvyšujúcou sa spotrebou zdrojov primárnymi prostrediami. Keď sa zaťaženie primárnych prostredí zníži, prostredia s nízkou prioritou sa vrátia z režimu spánku. Za týchto podmienok, aby sa zachovala správna kvalita služby, je dôležité minimalizovať čas potrebný na prechod do režimu spánku a jeho ukončenie. Fáza preventívneho čistenia sa môže spustiť, keď sa dosiahne určitá úroveň hlavného zaťaženia, predchádzajúca úroveň, ktorá vedie k zamrznutiu prostredí s nízkou prioritou.

Zdroj: opennet.ru

Pridať komentár