数据库内存限制

在设置数据库的内存限制时,您可以定义数据库可以达到的最大大小。

Redis 企业软件 Redis 云

在设置数据库的内存限制时,您可以定义 数据库可以跨所有数据库副本和 分片,包括主分片和副本分片。

如果集群中数据库的总大小达到内存 limit,则数据驱逐策略为 应用的。

选型因素

调整数据库大小时要考虑的因素:

  • 数据集大小:您希望限制高于数据集大小,以便为开销留出空间。
  • 数据库吞吐量:高吞吐量需要更多的分片,从而导致更高的内存限制。
  • modules:将 modules 与数据库一起使用会消耗更多内存。
  • Database clustering:使您能够将数据分散到跨多个节点的分片中。
  • 数据库复制:启用复制会使内存消耗翻倍。

主动-主动数据库的其他因素:

  • 主动-主动复制:启用主动-主动复制所需的内存是常规复制的两倍,最高可达每个实例原始数据大小的两倍 (2x)。

  • 用于分片之间同步的数据库复制积压。默认情况下,此字段设置为数据库大小的 1%。

  • 用于集群之间同步的主动-主动复制积压。默认情况下,此字段设置为数据库大小的 1%。

    此外,了解主动-主动数据库激活驱逐策略的阈值较低也很重要,因为它需要传播到所有参与的集群。当其中一个 Active-Active 实例达到其内存限制的 80% 时,驱逐策略开始驱逐密钥。

启用了 Auto Tiering 的数据库的其他因素:

  • 可用闪存空间必须大于或等于总数据库大小 (RAM+Flash)。额外的空间考虑了写入缓冲区和写入放大

  • 数据库持久性:Auto Tiering 使用双数据库持久性,其中主分片和副本分片都保存到磁盘。这可能会增加一些处理器和网络开销,尤其是在具有网络连接存储的云配置中。

当 Redis Enterprise Software 的 RAM 不足时会发生什么情况?

Redis Enterprise Software 管理节点内存,以便数据完全位于 RAM 中(除非使用 Auto Tiering)。如果没有足够的 RAM 可用,Redis Enterprise 会阻止向数据库中添加更多数据。

Redis Enterprise Software 可保护现有数据,并防止数据库能够将数据存储到分片中。

您可以将集群配置为将数据移动到另一个节点,甚至可以根据管理员在每个数据库上设置的驱逐策略将其丢弃。

Auto Tiering 管理内存,因此您也可以使用闪存 (SSD) 来存储数据。

RAM 不足的事件顺序

  1. 如果有其他节点可用,您的分片将迁移到其他节点。
  2. 如果驱逐策略允许驱逐,则分片开始释放内存, 这可能会导致数据丢失。
  3. 如果驱逐策略不允许驱逐,您将收到 内存不足 (OOM) 消息。
  4. 如果分片无法释放内存,Redis Enterprise 将依赖 OS 进程来停止副本, 但会尝试避免停止主分片。

我们建议您有一个监控平台,以便在系统 RAM 不足之前提醒您。 您必须保持足够的可用内存,以确保您拥有健康的 Redis Enterprise 安装。

内存指标

Cluster Manager UI 提供了可帮助您评估内存使用情况的指标。

  • 可用 RAM
  • RAM 碎片
  • 已用内存
  • 内存使用情况
  • 内存限制

有关更多详细信息,请参阅控制台指标

为本页评分
返回顶部 ↑