禁用透明大页 (THP)
透明大页 (THP) 是一种 Linux 内存管理系统。在具有大量内存的计算机上,该系统可以利用较大的内存页面来减少查找转换后备缓冲区 (TLB) 的开销。
然而,在启用 THP 的情况下,数据库工作负载通常性能较差,因为它们往往具有稀疏而不是连续的内存访问模式。在 Linux 上运行 MongoDB 时,应禁用 THP 以获得最佳性能。
为确保在 mongod
启动之前禁用 THP,您应为平台的初始化系统创建一个服务文件,以在启动时禁用 THP。下面提供了针对systemd和System V init初始化系统的说明。
此外,对于使用 ktune
和 tuned
性能配置文件的 RHEL /CentOS 系统,您还必须创建自定义的 tuned
配置文件。
创建服务文件
若要创建禁用 THP 的服务文件,则需要使用您平台内置的初始化系统。最新版本的 Linux 倾向于使用 systemd(使用systemctl
命令),而旧版本的 Linux 倾向于使用 System V init(使用service
命令)。有关详细信息,请参阅适用于您的操作系统的文档。
使用适合您平台的初始化系统:
使用tuned
和ktune
重要
如果要使用 tuned
或 ktune
,那么在创建上述服务文件后您还必须执行本节中的步骤。
tuned
和 ktune
是动态内核调优工具,可能会影响您系统上的透明大页设置。如果您想在运行 mongod
时,于您的 RHEL/CentOS 系统上使用 tuned
/ktune
,您必须创建一个自定义的 tuned
配置文件以确保 THP 保持禁用状态。
Red Hat/CentOS 6
1
2
Red Hat/CentOS 7 和 8
1
2