Menu Close
Settings Close

Language and Page Formatting Options

13.6.5. 管理内核相同的页面合并

内核同页合并 (KSM) 通过在虚拟机 (VM) 间共享相同的内存页面来提高内存密度。但是,启用 KSM 会增加 CPU 使用率,并可能会根据工作负载对整体性能造成负面影响。

根据具体要求,您可以为单个会话启用或禁用 KSM,或者永久禁用 KSM。

注意

在 RHEL 9 及更高版本中,默认禁用 KSM。

先决条件

  • 对主机系统有根访问权限。

流程

  • 禁用 KSM:

    • 要对单个会话停用 KSM,请使用 systemctl 工具停止 ksmksmtuned 服务。

      # systemctl stop ksm
      
      # systemctl stop ksmtuned
    • 要永久停用 KSM,请使用 systemctl 工具来禁用 ksmksmtuned 服务。

      # systemctl disable ksm
      Removed /etc/systemd/system/multi-user.target.wants/ksm.service.
      # systemctl disable ksmtuned
      Removed /etc/systemd/system/multi-user.target.wants/ksmtuned.service.
注意

取消激活 KSM 前在虚拟机间共享的内存页将保持共享。要停止共享,请使用以下命令删除系统中的所有 PageKSM 页面:

# echo 2 > /sys/kernel/mm/ksm/run

匿名页面替换了 KSM 页面后,khugepaged 内核服务将在虚拟机物理内存中重建透明的大页面。

  • 启用 KSM:
警告

启用 KSM 会增加 CPU 使用率并影响整体 CPU 性能。

  1. 安装 ksmtuned 服务:

    # yum install ksmtuned
  2. 启动服务:

    • 要为单个会话启用 KSM,请使用 systemctl 程序启动 ksmksmtuned 服务。

      # systemctl start ksm
      # systemctl start ksmtuned
    • 要永久启用 KSM,请使用 systemctl 程序启用 ksmksmtuned 服务。

      # systemctl enable ksm
      Created symlink /etc/systemd/system/multi-user.target.wants/ksm.service → /usr/lib/systemd/system/ksm.service
      
      # systemctl enable ksmtuned
      Created symlink /etc/systemd/system/multi-user.target.wants/ksmtuned.service → /usr/lib/systemd/system/ksmtuned.service