为什么vertica需要交换分区?

Why does vertica need a swap partition?

我正在 Centos 6 集群上安装 Vertica 7.1。我的每个节点都有 48g 内存,因此默认情况下禁用交换分区。我不明白为什么 vertica 必须有一个交换分区。对我来说这没有意义。非常感谢任何帮助!

Swap 不仅仅适用于 运行 RAM 不足的情况。许多服务 运行 不经常使用,可以轻松交换到磁盘以释放内存以用于更重要的事情。如果您没有至少一些交换 space,您将浪费 RAM。我宁愿将我的 RAM 用于磁盘缓存,也不愿用于几乎从未执行过的服务。

这可能就是 Vertica 需要最小交换量 space(仅 2GB)的原因。 Doc Link

每个节点有 48 Gb 的 RAM 真是太好了,但您的 Vertica 集群不关心这个。

你看,Vertica 是在 cheap/commodity 硬件之上 运行 构建的,即 4-8 Gb RAM 和 3-4 CPU,所以交换 space 在这种情况下是需要的,除非你掌握了资源分配和数据库工作负载。

您可以在没有交换 space 的情况下安装数据库,也可以只使用 --failure-threshold NONE 选项。 -- 如果需要交换,这将带来一些惩罚。

我建议根据 Vertica 的建议进行交换 space,如果您不希望使用该交换,除非您的 RAM 达到 90%,然后使用 swappiness linux 参数,请参阅这里是如何完成的 https://askubuntu.com/questions/103915/how-do-i-configure-swappiness.

同时查看 Scale-UP 与 Scale-OUT。 从外观上看,您正在使用 Scale-UP 方法,我不推荐这种方法,因为有很多要点,例如:

  • 将硬件添加到一个大盒子,然后滑入另一个大盒子的成本更高 服务器。
  • 由于所有部门的需求相互冲突,因此难以管理 独立的过程。因无意更改而产生的重大影响 子系统的根或补丁或 OS.
  • 昂贵的硬件选型错误让您的公司付出了代价。