Table of Contents

Проблема

На хосте Proxmox (многих версий, вплоть до 6.x) процесс ksmd потребляет много CPU (25-40% на четырехъядерном процессоре).

Решение

Очевидно - решение в тонкой настройке демона ksmd, который занимается поиском и слиянием (merging) страниц памяти с одинаковым содержимым для высвободжения памяти. Настройки демона хранятся в файле /etc/ksmtuned.conf.
Помогает увеличение интервала KSM_SLEEP_MSEC до 100 милисекунд:

KSM_SLEEP_MSEC=100

Значение остальных параметров:

Текущий размер страницы памяти можно получить так:

getconf PAGE_SIZE

На сервере с объемом памяти 32Gb я использую такие значения:

KSM_SLEEP_MSEC=1000
KSM_THRES_COEF=50

Перезапустить демон ksmd можно такой командой:

sudo service ksmtuned restart