15.7.8. 启用和禁用内核相同页合并


内核同页合并 (KSM) 通过在虚拟机 (VM) 间共享相同的内存页面来提高内存密度。因此,启用 KSM 可能会提高虚拟机部署的内存效率。

但是,启用 KSM 也会增加 CPU 使用率,并可能会对总体性能造成负面影响,具体取决于工作负载。

在 RHEL 9 及更高版本中,默认禁用 KSM。要启用 KSM 并测试其对虚拟机性能的影响,请参阅以下说明。

先决条件

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

流程

  1. 启用 KSM:

    警告

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

    1. 安装 ksmtuned 服务:

      # {PackageManagerCommand} 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
  2. 监控主机上虚拟机的性能和资源消耗,以评估激活 KSM 的好处。具体来说,请确保 KSM 的额外的 CPU 使用率不会抵消内存改进,且不会造成额外的性能问题。在延迟敏感的工作负载中,还要注意跨 NUMA 页合并。
  3. 可选:如果 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

但是,这个命令会增加内存使用率,并可能导致主机或虚拟机上出现性能问题。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部