Canonical har föreslagit patchar för att påskynda aktiveringen av viloläge

Kanonisk föreslog på e-postlistan för Linux-kärnutvecklare en uppsättning patchar med implementering opportunistisk minnesrensning ("opportunistic memory reclaim"), vilket gör att du avsevärt kan minska tiden det tar att gå in i viloläge. Optimering uppnås genom att proaktivt anropa frigöringsoperationen av sekundära minnesstrukturer som inte innehåller unik information och som dynamiskt kan återställas efter återgång från viloläge (till exempel områden anonymt minne och olika cacher för minnessidor). Huvudtanken är att efter att ha tagit bort onödiga data, minskas storleken på minnesbilden som ska sparas innan den går in i viloläge och följaktligen krävs mindre tid för att skriva den och läsa den från långsam media.

Som standard, när du sparar en minnesdump för viloläge, sparar kärnan minnet som det är med alla cachar, men det finns en standardförmåga att frigöra onödiga strukturer genom att simulera resursbristtillstånd i det inledande skedet av att gå in i viloläge. Denna funktion kan aktiveras med parametern "/sys/power/image_size" och leder till en märkbar minskning av tiden det tar att gå in i viloläge. Canonical föreslår att du lägger till ytterligare två parametrar "/sys/power/mm_reclaim/run" och
"/sys/power/mm_reclaim/release", vilket gör att du kan trigga frigörandet av onödiga strukturer i förväg så att den faktiska övergången till viloläge utförs så snabbt som möjligt och att återvända från viloläge tar ungefär samma tid som när du använder en befintlig i kärnparametern "/sys/power/image_size".

Testning på ett system med 8 GB RAM och 8 GB swap-partition med 85 % av minnesutnyttjandet visade i standardinställningarna (image_size=default) en minskning av tiden för att gå in i viloläge från 51.56 till 4.19 sekunder när processen initierades rensar överflödigt minne 60 sekunder innan du går in i viloläge. Genom att minska storleken på den lagrade minnesbilden minskade återställningstiden från 26.34 till 5 sekunder. När systemet slog på standardläget för att rensa överflödigt minne (image_size=0), minskade tiden för att gå in i viloläge från 73.22 till 5.36 sekunder, och tiden för att återgå från viloläge förblev praktiskt taget oförändrad (den reducerades endast med en bråkdel av en sekund, från 5.32 till 5.26 sekunder).

Den föreslagna metoden kan vara efterfrågad i situationer där det är nödvändigt att mycket snabbt byta till viloläge och det är möjligt att förutse behovet av en sådan övergång i förväg. Till exempel, i molnsystem, lågprioriterade virtuella miljöer (platsmiljöer i Amazon EC2) kan dynamiskt gå i viloläge och frigöra upptaget minne när resursförbrukningen i primära miljöer ökar. När belastningen på primära miljöer minskar återgår lågprioriterade miljöer från viloläge. Under dessa förhållanden är det viktigt att minimera tiden det tar att gå in och ur viloläget för att upprätthålla rätt kvalitet på tjänsten. Den förebyggande rengöringsfasen kan utlösas när en viss nivå av huvudbelastningen uppnås, före den nivå som leder till frysning av lågprioriterade miljöer.

Källa: opennet.ru

Lägg en kommentar