Canonical heeft patches voorgesteld om de activering van de slaapmodus te versnellen

Canoniek suggereerde op de mailinglijst van Linux-kernelontwikkelaars een set patches met implementatie opportunistische geheugenzuivering (“opportunistic memory reclaim”), waarmee u de tijd die nodig is om naar de slaapmodus te gaan aanzienlijk kunt verkorten. Optimalisatie wordt bereikt door proactief de vrijgavebewerking aan te roepen van secundaire geheugenstructuren die geen unieke informatie bevatten en dynamisch kunnen worden hersteld na terugkeer uit de slaapmodus (bijvoorbeeld gebieden anonieme herinnering en verschillende geheugenpaginacaches). Het belangrijkste idee is dat na het verwijderen van onnodige gegevens de grootte van het geheugenbeeld dat moet worden opgeslagen voordat het naar de slaapmodus gaat, wordt verkleind en dat er dienovereenkomstig minder tijd nodig is om het te schrijven en te lezen vanaf langzame media.

Wanneer een geheugendump wordt opgeslagen voor de slaapstand, bewaart de kernel standaard het geheugen zoals dat bij alle caches het geval is, maar er is een standaardmogelijkheid om onnodige structuren vrij te maken door omstandigheden van tekorten aan hulpbronnen te simuleren in de beginfase van het ingaan van de slaapstand. Deze functie kan worden geactiveerd met behulp van de parameter “/sys/power/image_size” en leidt tot een merkbare vermindering van de tijd die nodig is om naar de slaapmodus te gaan. Canonical stelt voor om nog twee parameters toe te voegen “/sys/power/mm_reclaim/run” en
“/sys/power/mm_reclaim/release”, waarmee u van tevoren onnodige structuren kunt vrijgeven, zodat de daadwerkelijke overgang naar de slaapmodus zo snel mogelijk wordt uitgevoerd en het terugkeren uit de slaapmodus ongeveer even lang duurt als bij gebruik van een bestaande in kernelparameter "/sys/power/image_size".

Testen op een systeem met 8 GB RAM en 8 GB swappartitie met 85% geheugengebruik toonden in de standaardinstellingen (image_size=default) een afname aan van de tijd om naar de slaapmodus te gaan van 51.56 naar 4.19 seconden bij het starten van het proces van overtollig geheugen wissen 60 seconden voordat de slaapmodus wordt geactiveerd. Door de grootte van het opgeslagen geheugenbeeld te verkleinen, nam de hersteltijd af van 26.34 naar 5 seconden. Toen het systeem de standaardmodus inschakelde voor het wissen van overtollig geheugen (image_size=0), werd de tijd om naar de slaapmodus te gaan teruggebracht van 73.22 naar 5.36 seconden, en de tijd om terug te keren uit de slaapmodus bleef vrijwel onveranderd (deze werd slechts met een fractie van een seconde, van 5.32 tot 5.26 seconden).

Er kan veel vraag zijn naar de voorgestelde methode in situaties waarin het nodig is om zeer snel naar de slaapmodus over te schakelen en het mogelijk is om de noodzaak van een dergelijke overgang van tevoren te voorzien. In cloudsystemen kunnen virtuele omgevingen met lage prioriteit (spot-omgevingen in Amazon EC2) kunnen dynamisch overwinteren en bezet geheugen vrijgeven naarmate het hulpbronnenverbruik door primaire omgevingen toeneemt. Wanneer de belasting van de primaire omgevingen afneemt, keren omgevingen met lage prioriteit terug uit de slaapmodus. Om de juiste servicekwaliteit te behouden, is het onder deze omstandigheden belangrijk om de tijd die nodig is om de slaapmodus in en uit te gaan, te minimaliseren. De preventieve reinigingsfase kan worden geactiveerd wanneer een bepaald niveau van de hoofdbelasting wordt bereikt, voorafgaand aan het niveau dat leidt tot bevriezing van omgevingen met lage prioriteit.

Bron: opennet.ru

Voeg een reactie