Differences

This shows you the differences between two versions of the page.

Link to this comparison view

proxmox:proxmox_ksmd_high_cpu_load [2019/11/12 06:58] – created adminproxmox:proxmox_ksmd_high_cpu_load [2019/11/12 07:43] (current) – [Решение] admin
Line 1: Line 1:
 +====== Проблема ======
 +На хосте **Proxmox** (многих версий, вплоть до 6.x) процесс **ksmd** потребляет много CPU (25-40% на четырехъядерном процессоре). \\
  
 +====== Решение ======
 +Очевидно - решение в тонкой настройке демона **ksmd**, который занимается поиском и слиянием (merging) страниц памяти с одинаковым содержимым для высвободжения памяти. Настройки демона хранятся в файле **/etc/ksmtuned.conf**. \\
 +Помогает увеличение интервала **KSM_SLEEP_MSEC** до 100 милисекунд:
 +  KSM_SLEEP_MSEC=100
 +Значение остальных параметров:
 +  * **KSM_MONITOR_INTERVAL** - временной интервал в секундах между сканированиями.
 +  * **KSM_SLEEP_MSEC** - временной интервал в милисекундах между сканированиями кусков по 16Gb. текущее значение можно найти тут: **/sys/kernel/mm/ksm/sleep_millisecs**
 +  * **KSM_NPAGES_BOOST** - число страниц, на которое будет увеличено количество сканируемых страниц при достижении порогов заданных параметрами **KSM_THRES_***
 +  * **KSM_NPAGES_DECAY** - число страниц, на которое будет уменьшено количество сканируемых страниц при достижении порогов заданных параметрами **KSM_THRES_***
 +  * **KSM_NPAGES_MIN** - минимальное число страниц памяти, которое сканируется всегда.
 +  * **KSM_NPAGES_MAX** - максимальное число сканируемых страниц
 +  * **KSM_THRES_COEF** - порог количества свободной памяти в процентах, при достижении которого запускается процесс сканирования и слияния.
 +  * **KSM_THRES_CONST** - порог количества свободной памяти в килобайтах, при достижении которого запускается процесс сканирования и слияния.
 +Текущий размер страницы памяти можно получить так:
 +  getconf PAGE_SIZE
 +На сервере с объемом памяти 32Gb я использую такие значения:
 +  KSM_SLEEP_MSEC=1000
 +  KSM_THRES_COEF=50
 +Перезапустить демон **ksmd** можно такой командой:
 +  sudo service ksmtuned restart
  • proxmox/proxmox_ksmd_high_cpu_load.txt
  • Last modified: 2019/11/12 07:43
  • by admin