Linux 为什么像Oracle和MongoDB这样的数据库不推荐使用THP(透明巨大页面)?

Linux 为什么像Oracle和MongoDB这样的数据库不推荐使用THP(透明巨大页面)?,linux,database,mongodb,oracle,memory-management,Linux,Database,Mongodb,Oracle,Memory Management,我很想知道为什么像Oracle和MongoDB这样的数据库不推荐透明的大页面?THP如何影响任何数据库的性能?显然,这是因为THP是可交换的,Linuxswap子系统只能处理基页大小而不能处理大页。这会造成竞争条件,对系统性能有重大影响 这似乎仍然是这个主题的最后一句话。现代机器不仅有启用或禁用,还有madvise设置。对于启用和碎片整理设置,我选中的所有机器都已将后者作为默认设置(!)。 检查 cat/sys/kernel/mm/transparent_-hugepage/{enabled,d

我很想知道为什么像Oracle和MongoDB这样的数据库不推荐透明的大页面?THP如何影响任何数据库的性能?

显然,这是因为THP是可交换的,Linux
swap
子系统只能处理基页大小而不能处理大页。这会造成竞争条件,对系统性能有重大影响


这似乎仍然是这个主题的最后一句话。

现代机器不仅有
启用
禁用
,还有
madvise
设置。对于启用和碎片整理设置,我选中的所有机器都已将后者作为默认设置(!)。 检查

cat/sys/kernel/mm/transparent_-hugepage/{enabled,defrag}

根据madvise的定义,这在默认情况下禁用THP,但允许应用程序通过madvise()调用请求THP支持

也许2014年的建议不再相关了


关于这个主题有一个新的讨论。

不确定THP是否与HugePages相同,但如果是这样,建议Oracle使用它们:@WilliamRobertson THP是对传统HugePages的改进。两者之间有区别。HugePages在启动时分配,但THP是动态分配的。内核线程(khugepaged)在后台运行以管理HugePages。听起来应该有同样的优势。谁说不推荐Oracle使用它?但我不是DBA或系统管理员。我想这应该是开着或。@WilliamRobertson在你的共享链接上,推荐使用大页面,但不推荐使用THP(透明大页面)。