Table of Contents

Проблема

На хосте ProxMox 5.2.1 с небольшим количеством памяти (8Gb) есть виртуальные машины Windows версий 7, Server 2008R2 и Server 2016. При установке или запуске виртуалок наблюдаются сильные тормоза. Система устанавливается и загружается очень медленно (может стартовать по 15 минут). Многие сервисы не могут запуститься.

Причина

Судя по всему - причина в проблемах при выделении памяти.

Решение

На хосте ProxMox 5.2.1 нужно выполнить такое:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

Можно прямо на ходу. Выключать или перезагружать хост не требуется.
Для виртуалки Windows Server 2008R2 время запуска уменьшилось с 10 минут до 16 секунд!!!
Чтобы эти найстройки применялись после рестарта нужно сделать соответствующий файлик автозапуска для systemd - /etc/systemd/system/disable-thp.service с таким содержимым:

[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

И затем включить и запустить получившийся “сервис”:

systemctl daemon-reload
systemctl start disable-thp
systemctl enable disable-thp