Firma Canonical Linuxi tuumade arendajate postitusloendis on komplekt patše rakenduse jaoks („opportunistic memory reclaim“), mis võimaldab oluliselt vähendada unerežiimi üleminekuaega. Optimeerimine saavutatakse, kutsudes eelnevalt esile operatsiooni, et vabastada sekundaarsete mälu struktuuride, mis ei sisalda unikaalseid andmeid ja mida saab dünaamiliselt taastada pärast unerežiimist väljumist (nt piirkonnad ja erinevad mälu lehekülgede vahemälud). Peamine idee on see, et pärast liigsete andmete eemaldamist väheneb mälu pildi suurus, mis salvestatakse enne unerežiimi sisenemist, ning seega on selle kirjutamiseks ja aeglasest mäluseadmest lugemiseks vähem aega.
Vaikimisi, kui mälu kahtkusi salvestatakse une režiimi, salvestab kernel mälu sellisena, nagu see on kõigi vahemäludega, kuid on ette nähtud sisseehitatud võimalus vabastada liigsed struktuurid simuleerimise kaudu ressursside puuduse tingimustes une režiimi ülemineku algstaadiumis. Seda võimalust saab aktiveerida parameetri «/sys/power/image_size» abil, mis toob kaasa märgatava vähenemise une režiimi ülemineku ajas. Canonical soovitab lisada veel kaks parameetrit «/sys/power/mm_reclaim/run» ja
«/sys/power/mm_reclaim/release», mis võimaldavad vabastada liigsed struktuurid ennetavalt, et tagada une režiimi üleminek oleks võimalikult kiire ning ärkamine unerežiimist võtaks aega umbes sama palju kui olemasoleva parameetri «/sys/power/image_size» rakendamise korral.
8 GB RAM ja 8 GB vahetusruumiga süsteemis tehtud testimine, mille käigus kasutati 85% mälust, näitas vaikeseadetega (image_size=default) unerežiimi sisenemise aja vähenemist 51.56 sekundilt 4.19 sekundile, kui algatati üleliigse mälu puhastamise protsess 60 sekundit enne unerežiimi sisenemist. Salvestatud mälupildi suuruse vähendamise tõttu vähenes taastumisaeg 26.34 sekundilt 5 sekundile. Kui süsteemi standardne üleliigse mälu puhastamise režiim (image_size=0) oli lubatud, vähenes unerežiimi sisenemise aeg 73.22 sekundilt 5.36 sekundile, samas kui unerežiimist tagasi tulemise aeg muutus praktiliselt olematuks (vähenes vaid osakeste sekundite võrra, 5.32-lt 5.26 sekundile).
Pakutud meetod võib osutuda kasulikuks olukordades, kus on vajalik väga kiiresti unerežiimi siseneda ja on võimalik ette näha, et selline üleminek on vajalik. Näiteks pilvesüsteemides madalprioriteetsed virtuaalsed keskkonnad ( Amazon EC2-s saavad dünaamiliselt siseneda ooterežiimi ja vabastada kasutatav mälu, kui algsete keskkondade ressursikasutus suureneb. Algsete keskkondade koormuse vähenedes naasevad madala prioriteediga keskkonnad ooterežiimist. Antud tingimustes on teenuse õige kvaliteedi säilitamiseks oluline minimaalne ülemineku aeg ooterežiimi ja sellest väljumiseks. Ennetava puhastamise faasi saab alustada, kui saavutatakse teatud määr koormusest, mis eelneb tasemele, mis viib madala prioriteediga keskkondade külmutamiseni.
Allikas: opennet.ru
