Canonical on välja pakkunud unerežiimi aktiveerimise kiirendamiseks plaastreid

Kanooniline soovitas Linuxi kerneli arendajate meililoendis paikade komplekt koos juurutusega oportunistlik mälu puhastamine (“oportunistlik mälu taastamine”), mis võimaldab oluliselt lühendada unerežiimi sisenemiseks kuluvat aega. Optimeerimine saavutatakse, kutsudes ennetavalt välja sekundaarsete mälustruktuuride vabastamise operatsiooni, mis ei sisalda ainulaadset teavet ja mida saab pärast puhkerežiimist naasmist dünaamiliselt taastada (näiteks alad anonüümne mälu ja mitmesugused mälulehtede vahemälud). Põhiidee seisneb selles, et pärast mittevajalike andmete eemaldamist väheneb enne unerežiimi minekut salvestatava mälupildi suurus ja vastavalt sellele kulub vähem aega selle kirjutamiseks ja aeglaselt kandjalt lugemiseks.

Vaikimisi salvestab tuum talveunerežiimi jaoks mälutõmmise salvestamisel mälu nii, nagu see on kõigi vahemäludega, kuid standardne võimalus vabastada mittevajalikud struktuurid, simuleerides ressursipuuduse tingimusi talveunerežiimi sisenemise algfaasis. Seda funktsiooni saab aktiveerida parameetri „/sys/power/image_size” abil ja see vähendab märgatavalt unerežiimi sisenemiseks kuluvat aega. Canonical soovitab lisada veel kaks parameetrit „/sys/power/mm_reclaim/run” ja
“/sys/power/mm_reclaim/release”, mis võimaldab eelnevalt käivitada mittevajalike struktuuride vabastamise, nii et tegelik üleminek puhkerežiimile toimuks võimalikult kiiresti ja unerežiimist naasmine võtab aega umbes sama palju kui võimalik. kui kasutate olemasolevat kerneli parameetris "/sys/power/image_size".

Testimine 8 GB RAM-i ja 8 GB vahetuspartitsiooniga süsteemiga, kus mälukasutus on 85%, näitas vaikeseadetes (image_size=default) puhkerežiimi lülitumise aja lühenemist 51.56 sekundilt 4.19 sekundile liigse mälu tühjendamine 60 sekundit enne puhkerežiimi sisenemist. Salvestatud mälupildi suurust vähendades vähenes taastumisaeg 26.34 sekundilt 5 sekundile. Kui süsteem lülitas üleliigse mälu tühjendamiseks sisse standardrežiimi (image_size=0), vähenes puhkeolekusse mineku aeg 73.22 sekundilt 5.36 sekundile ja puhkerežiimist naasmise aeg jäi praktiliselt muutumatuks (see vähenes vaid ühe sekundi võrra). sekundi murdosa, 5.32–5.26 sekundit).

Väljapakutud meetod võib olla nõutud olukordades, kus on vaja väga kiiresti lülituda unerežiimile ja sellise ülemineku vajadust on võimalik ette näha. Näiteks pilvesüsteemides madala prioriteediga virtuaalkeskkondades (kohapealsed keskkonnad Amazon EC2) saab dünaamiliselt talveunne jääda ja vabastada hõivatud mälu, kui ressursitarbimine esmastes keskkondades suureneb. Kui esmaste keskkondade koormus väheneb, naasevad madala prioriteediga keskkonnad puhkerežiimist. Nendes tingimustes on õige teenusekvaliteedi säilitamiseks oluline minimeerida puhkerežiimi sisenemiseks ja sellest väljumiseks kuluvat aega. Ennetava puhastamise faas võib käivituda, kui saavutatakse teatud põhikoormuse tase, mis eelneb madala prioriteediga keskkondade külmumiseni.

Allikas: opennet.ru

Lisa kommentaar