Несколько видеороликов Адриена (см. ниже), а так же положительные отзывы пользователей, вдохновили нас на поиски новых путей оптимизации потребления памяти в Calculate Linux.
https://www.youtube.com/watch?v=au_hzfeMHB8
https://www.youtube.com/watch?v=SEMqj1up3IA
https://www.youtube.com/watch?v=Nla6pd7UQCE
Два года назад мы добавляли в ядро патч UKSM (Ultra Kernel Samepage Merging), позволяющий путём объединения одинаковых страниц высвобождать память. Потом от него отказались перейдя на использование KSM. Получив недавно положительную оценку его работы мы решили снова попробовать.
Тест выполняется очень просто. Вначале отключите модуль выполнив сразу после загрузки, а лучше в загрузочном скрипте:
echo 0 > /sys/kernel/mm/uksm/run
После этого можно запустить браузер и пооткрывать разные сайты, в общем создать обычную активность. Затем запустите htop
и посмотрите потребление памяти. Теперь активируйте модуль и посмотрите на результат команды htop
.
echo 1 > /sys/kernel/mm/uksm/run
Вы увидите как память начнёт на глазах высвобождаться (см. видео). В серии тестов нам удалось высвободить до 18% ОЗУ при ~20 открытых вкладках в браузере с разными сайтами. Во время своей работы модуль расходует менее 1% производительности процессора, что вполне оправдано.
https://www.youtube.com/watch?v=XupyiJj8634
В свете работы над проектом lxc-desktop, позволяющим запускать несколько копий системы на одном ПК, возможность объединять одинаковые страницы будет ещё более эффективной. В общем модуль со всех сторон показал себя с лучшей стороны, а потому включён по умолчанию в серверные и десктопные ядра, обновление которых уже доступно в тестовом репозитории.