Компания Canonical предложила патчи для ускорения активации спящего режима
9 июня 2020 года
Компания Canonical предложила в списке рассылки разработчиков ядра Linux набор патчей с реализацией оппортунистической чистки памяти ("opportunistic memory reclaim"), позволяющей существенно сократить время перехода в спящий режим. Оптимизация достигается за счёт упреждающего вызова операции высвобождения вторичных структур памяти, которые не содержат уникальных сведений и могут быть динамически восстановлены после возвращения из спящего режима (например, области анонимной памяти и различные кэши страниц памяти). Основная идея в том, что после удаления лишних данных сокращается размер образа памяти для сохранения перед переходом в спящий режим и, соответственно, требуется меньше времени на его запись и чтение с медленного носителя.
По умолчанию при сохранении дампа памяти для спящего режима ядро сохраняет память как есть со всеми кэшами, но предусмотрена штатная возможность высвобождения лишних структур через симуляцию условий нехватки ресурсов на начальной стадии перехода в спящий режим. Данная возможность может быть активирована при помощи параметра "/sys/power/image_size" и приводит к заметному уменьшению времени перехода в спящий режим. Canonical предлагает добавить ещё два параметра "/sys/power/mm_reclaim/run" и "/sys/power/mm_reclaim/release", которые позволят вызывать высвобождение лишних структур заблаговременно для того чтобы фактически переход в спящий режим был выполнен как можно быстрее, а возвращение из спящего режима заняло примерно столько же времени, что и при применении уже существующего в ядре параметра "/sys/power/image_size".
Тестирование на системе с 8 ГБ ОЗУ и 8 ГБ разделом подкачки при утилизации 85% памяти показало в настройках по умолчанию (image_size=default) снижение времени перехода в спящий режим с 51.56 до 4.19 секунд при инициировании процесса очистки лишней памяти за 60 секунд до перехода в спящий режим. За счёт сокращения размера сохраняемого образа памяти время восстановления снизилось с 26.34 до 5 секунд. При включении в системе штатного режима очистки лишней памяти (image_size=0) время перехода в спящий режим сократилось с 73.22 до 5.36 секунд, а время возвращения из спящего режима практически не изменилось (сократилось лишь на доли секунды, с 5.32 до 5.26 сек.)
Предложенный метод может быть востребован в ситуациях, когда необходимо очень быстро перейти в спящий режим и имеется возможность заранее предвидеть необходимость такого перехода. Например, в облачных системах низкоприоритетные виртуальные окружения (spot-окружения в Amazon EC2) могут динамически переводиться в спящий режим и высвобождать занимаемую память при росте потребления ресурсов первичными окружениями. При снижении нагрузки на первичные окружения низкоприоритетные окружения возвращаются из спящего режима. При данных условиях для поддержания должного качества сервиса важно сократить до минимума время перехода в спящий режим и выхода из него. Запуск фазы упреждающей очистки может производиться при достижении определённого уровня основной нагрузки, предшествующей уровню, приводящему к заморозке низкоприоритетных окружений.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.