8.3.4. 取消激活 KSM
内核相同页面合并(KSM)的性能开销可能会对某些环境或主机系统而言过大。KSM 还可以引入侧信道,这些通道可能会用于跨客户机泄漏信息。如果出现这种情况,可以基于每个虚拟机禁用 KSM。
通过停止
ksmtuned 和 ksm 服务可停用 KSM。但是,重新启动后此操作不会保留。要取消激活 KSM,以 root 用户身份在终端中运行以下命令:
# systemctl stop ksmtuned
Stopping ksmtuned: [ OK ]
# systemctl stop ksm
Stopping ksm: [ OK ]
停止
ksmtuned 和 ksm 会取消激活 KSM,但重新启动后该操作不会保留。使用 systemctl 命令永久取消激活 KSM:
# systemctl disable ksm
# systemctl disable ksmtuned
当 KSM 禁用时,在激活 KSM 之前共享的所有内存页面仍会共享。要删除系统中的所有 PageKSM,请使用以下命令:
# echo 2 >/sys/kernel/mm/ksm/run
执行后,
khugepaged 守护进程可以在 KVM 客户机物理内存上重建透明巨页。使用 # echo 0 >/sys/kernel/mm/ksm/run 会停止 KSM,但不会共享之前创建的所有 KSM 页面(这与 # systemctl stop ksmtuned 命令相同)。