为什么不推荐THP(透明大页面)用于Oracle和MongoDB等数据库?

时间:2018-02-12 09:27:00

标签: linux database mongodb oracle memory-management

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

2 个答案:

答案 0 :(得分:2)

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

Oracle blog dates from 2014但似乎仍然是该主题的最后一句话。

答案 1 :(得分:0)

现代机器不仅具有enabledisable,还具有madvise设置。我检查的所有计算机都已将后者作为默认启用(!)进行启用和碎片整理设置。 检查

cat /sys/kernel/mm/transparent_hugepage/{enabled,defrag}

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

也许2014年的建议不再适用?

https://www.percona.com/blog/2019/03/06/settling-the-myth-of-transparent-hugepages-for-databases/对此主题进行了新的讨论。