Разработчиците на Canonical пуснаха чрез пощенски списък за развитие на ядрото на Linux, набор от лепенки за въвеждането на опортюнистично почистване на паметта, което има за цел да значително намаляват времето в режим на заспиване на системата.
Оптимизация се постига чрез проактивно извикване на освобождаването на структурите на паметта деца, които не съдържат уникална информация и които могат да бъдат възстановени динамично след връщане от режим на заспиване (например анонимни области на паметта и множество кешове на страници с памет).
Относно лепенките
Основната идея е, че след изтриване на ненужни данни, размерът на изображението в паметта е намален Да запазяr преди да преминете в режим на заспиване и следователно се изисква по-малко време за писане и четене от бавен носител.
По подразбиране, при запазване на дъмп на памет за режим на заспиване ядрото спестява памет как е с всички кешовеНо има стандартна възможност за освобождаване ненужни структури, симулиращи недостатъчни ресурсни условия в началния етап на преход в режим на заспиване.
Тази функция може да се активира с помощта на параметъра "/ sys / power / image_size" и води до забележимо намаляване на времето за преминаване в режим на заспиване.
Canonical предлага да се добавят още два параметъра, което ще позволи предварително освобождаване на ненужни структури, така че действителният преход в режим на заспиване да завърши възможно най-бързо и връщането от режим на заспиване отне приблизително същото време, както при прилагане на параметъра.
Тестове и резултати
Тестване на система с 8 GB RAM и 8 GB суап дял докато използвате 85% от паметта показва се в настройките по подразбиране (image_size = по подразбиране) намаляване на времето за да преминете в режим на заспиване 51.56 на 4.19 секунди, когато процесът на изчистване на излишната памет стартира 60 секунди, преди да преминете в режим на заспиване.
Поради намаляването на размера на запазеното изображение в паметта, времето за възстановяване намаля от 26.34 на 5 секунди.
Тук е първият опит за предоставяне на интерфейс, който позволява на потребителските космически задачи да задействат опортюнистично възстановяване на паметта преди хибернация на системата.
Предварителното извикване на паметта (напр. Когато системата не работи) позволява
намалете размера на изображението за хибернация и значително ускорете хибернацията и времето за възобновяване.
При нормален режим на почистване за излишна памет (image_size = 0) бе активиран в системата, времето за преминаване в режим на заспиване намаля от 73.22 на 5.36 секунди и времето за връщане от режим на заспиване не се променя (намалява само с част от секундата, от 5.32 на 5.26 секунди).
Типичният случай на използване на тази функция е да се позволи на екземплярите на облака с висок приоритет да изпреварват екземпляри с нисък приоритет (например екземпляри на място [1]), като ги хибернация.
Опортюнистичната рекултивация на паметта е много ефективна при бързо хиберниращи екземпляри, които разпределят голямо количество памет и остават предимно бездействащи през повечето време, използвайки само минимален работен набор.
Употреба
Предложеният метод може да бъде изискан в ситуации, когато е необходимо бързо да се премине в режим на заспиване и е възможно предварително да се предвиди необходимостта от такъв преход.
Например в облачните системи виртуалните среди с нисък приоритет (точкови среди в Amazon EC2) могат динамично да преминат в хибернация и да освободят заетата памет, докато нараства потреблението на първични ресурси.
Когато натоварването е намалено в основните настройки, среди с нисък приоритет се връщат от режим на заспиване. При тези условия, за да се поддържа адекватно качество на услугата, е важно да се сведе до минимум времето за влизане и излизане от режим на заспиване.
Фазата на превантивно почистване може да започне, когато се достигне определено ниво на основното натоварване, което предшества нивото, което води до замръзване на среда с нисък приоритет.
Fuente: https://lkml.org