“文档” 菜单
文档首页
/
MongoDB Manual
/ /

禁用透明大页 (THP)

在此页面上

  • 创建服务文件
  • 使用 tunedktune

透明大页 (THP) 是一种 Linux 内存管理系统。在具有大量内存的计算机上,该系统可以利用较大的内存页面来减少查找转换后备缓冲区 (TLB) 的开销。

然而,在启用 THP 的情况下,数据库工作负载通常性能较差,因为它们往往具有稀疏而不是连续的内存访问模式。在 Linux 上运行 MongoDB 时,应禁用 THP 以获得最佳性能。

为确保在 mongod启动之前禁用 THP,您应为平台的初始化系统创建一个服务文件,以在启动时禁用 THP。下面提供了针对systemdSystem V init初始化系统的说明。

此外,对于使用 ktunetuned 性能配置文件的 RHEL /CentOS 系统,您还必须创建自定义的 tuned 配置文件。

若要创建禁用 THP 的服务文件,则需要使用您平台内置的初始化系统。最新版本的 Linux 倾向于使用 systemd(使用systemctl命令),而旧版本的 Linux 倾向于使用 System V init(使用service命令)。有关详细信息,请参阅适用于您的操作系统的文档。

使用适合您平台的初始化系统:

重要

如果要使用 tunedktune,那么在创建上述服务文件后您还必须执行本节中的步骤。

tunedktune 是动态内核调优工具,可能会影响您系统上的透明大页设置。如果您想在运行 mongod 时,于您的 RHEL/CentOS 系统上使用 tuned/ktune,您必须创建一个自定义的 tuned 配置文件以确保 THP 保持禁用状态。

1

通过复制相关目录,从现有配置文件创建新配置文件。此示例以 virtual-guest 配置文件为基础,并使用 virtual-guest-no-thp 作为新配置文件:

sudo cp -r /etc/tune-profiles/virtual-guest /etc/tune-profiles/virtual-guest-no-thp
2

编辑 /etc/tune-profiles/virtual-guest-no-thp/ktune.sh 并将 set_transparent_hugepages 设置更改为以下内容:

set_transparent_hugepages never
3

启用新的配置文件:

sudo tuned-adm profile virtual-guest-no-thp
1

创建新目录,以保存自定义的 tuned 配置文件。此示例继承现有的 virtual-guest 配置文件,并使用 virtual-guest-no-thp 作为新配置文件:

sudo mkdir /etc/tuned/virtual-guest-no-thp
2

创建并编辑 /etc/tuned/virtual-guest-no-thp/tuned.conf,以使其包含以下内容:

[main]
include=virtual-guest
[vm]
transparent_hugepages=never

此示例继承现有的 virtual-guest 配置文件。为您的系统选择最合适的配置文件。

3

启用新的配置文件:

sudo tuned-adm profile virtual-guest-no-thp
← 数据库分析器输出