Transparent Huge Pages (THP) is a Linux memory management system that reduces the overhead of Translation Lookaside Buffer (TLB) lookups on machines with large amounts of memory by using larger memory pages.
However, database workloads often perform poorly with THP enabled, because they tend to have sparse rather than contiguous memory access patterns. When running MongoDB on Linux, THP should be disabled for best performance.
To ensure that THP is disabled before
you should create a service file for your platform's initialization
system that disables THP at boot. Instructions are provided below for
both the systemd and the System V init initialization systems.
Additionally, for RHEL / CentOS
systems that make use of
tuned performance profiles,
you must create a custom
tuned profile as well.
To create a service file that disables THP, you will use the
built-in initialization system for your platform. Recent versions
of Linux tend to use systemd (which uses the
while older versions of Linux tend to use System V init (which uses
service command). Refer to the documentation for your operating
system for more information.
Use the initialization system appropriate for your platform:
ktune, you must also perform the steps in
this section after creating the service file above.
ktune are dynamic kernel tuning tools that can affect
the transparent huge pages setting on your system. If you are using
ktune on your RHEL
/ CentOS system while running
mongod, you must create a custom
tuned profile to ensure that THP remains disabled.