【问题标题】:Why THP (Transparent Huge Pages) are not recommended for Databases like Oracle and MongoDB?为什么不建议将 THP(透明大页面)用于 Oracle 和 MongoDB 等数据库?
【发布时间】:2018-02-12 09:27:00
【问题描述】:

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

【问题讨论】:

  • 不确定 THP 是否与 HugePages 相同,但如果是,则建议 Oracle 使用它们:oracle-base.com/articles/linux/…
  • @WilliamRobertson THP 是对传统 HugePages 的改进。两者是有区别的。 HugePages 在启动时分配,但 THP 是动态分配的。一个内核线程 (khugepaged) 在后台运行以管理 HugePages。
  • 听起来应该有同样的优势。谁说 Oracle 不推荐它?不过,我不是 DBA 或系统管理员。我认为这可能应该在dba.stackexchange.comserverfault.com 上。
  • @WilliamRobertson 在您的共享链接上,推荐使用大页面,但不推荐使用 THP(透明大页面)。

标签: linux database mongodb oracle memory-management


【解决方案1】:

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

这个Oracle blog dates from 2014 但似乎仍然是该主题的最终决定。

【讨论】:

    【解决方案2】:

    现代机器不仅有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/ 对此话题有更新的讨论。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      相关资源
      最近更新 更多