我最近一直在努力解决透明大页性能问题,并注意到许多数据库系统建议将其关闭。我说的是 Oracle、Postgresql、MySQL、Cassandra、NuoDB、Redis、Hadoop 等。
举些例子:
- 彼得·扎伊采夫 (2014-07-23)。为什么 TokuDB 讨厌透明大页。佩尔科纳。
- 米歇尔·凯西 (2013-09-17)。透明大页面的性能问题。甲骨文。
- 亚当·阿布雷瓦亚和奥列格·莱文 (2014-05-15)。 Linux 透明大页、JEMalloc 和 NuoDB。 NuoDB 开发中心。
所以我想知道:什么类型的工作负载可以从这个功能中受益?
答案1
当您需要在同一个块中写入大量信息时,大页会很有用。它可以与磁盘写入策略相关,并且对于缓存非常重要。与所有配置选项一样,如果您的用例不适合,那么它就没有意义。
所以答案是,实际上需要同一块中大量数据的工作负载将从大页面中受益。如果数据太大,它将无法容纳,而必须分成许多页面文件,并且这些页面文件的绝对数量将太多而无法处理或由于某种原因而变得糟糕,并且较大的数量较少文件是更可取的 - 您的情况是需要大页面文件。
实际上,我从未遇到过任何需要它的情况,但我从管理缓存中知道 - 这是真实的事情,某人在某个地方可以从大页面中受益。
答案2
不知道谁告诉你 cassandra 不会从大页面中受益。也许您想在 /sys/kernel/mm/transparent_hugepage 中的碎片整理选项方面多聊聊。
个人刚刚测试了带有和不带有大页的 cassandra 集群,并且在使用不同分区大小(从 300 b 到 4k 开始)的各种测试之后,我可以告诉我将重新启用它们。