如果默认限制是使用 2GB 内存的 10%,那么为 YugabyteDB 主节点提供 2GB 内存有什么意义?

What's the point of giving 2GB of RAM to a YugabyteDB master node if the default limit is to use 10% of those 2GB?

[用户在 YugabyteDB Community Slack] 上发布的问题

我正在查看 mem_tracker 代码,我发现了这条评论: https://github.com/yugabyte/yugabyte-db/blob/v2.9.1/src/yb/util/mem_tracker.cc#L266

// - 10% of the RAM for masters.

所以显而易见的问题是:如果默认限制是使用 2GB RAM 的 10%,那么为主节点提供 2GB RAM 有什么意义?

这些是默认值,可以被 default_memory_limit_to_ram_ratio=0.1 标志覆盖。这个想法是,如果在同一个节点上有一个主服务器和 tserver,我们允许 10% 给主服务器,85% 给 tserver(剩下 5% 给系统 + PostgreSQL work_mem + 文件系统缓冲区)。

如果您有一个仅运行主节点的节点,那么显然这应该更改。但通常,masters 和 tservers 在相同的节点上启动。