我很想知道为什么不建议像Oracle和MongoDB这样的数据库使用透明的大页面? THP如何影响任何数据库的性能?
答案 0 :(得分:2)
显然这是因为THP是可交换的,Linux swap
子系统只能处理基页大小而不能处理HugePages。这会产生竞争条件,对系统性能产生重大影响。
此Oracle blog dates from 2014但似乎仍然是该主题的最后一句话。
答案 1 :(得分:0)
现代机器不仅具有enable
或disable
,还具有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/对此主题进行了新的讨论。