避免redis进程同时生成RDB快照

时间:2016-05-08 00:59:09

标签: redis

想象一下Redis Cluster的设置,或者只是通常的分片设置,我们有N>每个物理节点1个Redis进程。我们所有的进程都具有相同的redis.conf,并在那里使用相同的SAVE周期启用了SAVE选项。因此,如果我们所有的主要Redis进程同时启动 - 它们将在同一时间或周围开始保存。 当我们有9个Redis进程并且它们全部在同一时间启动RDB快照时:

  1. 影响性能,因为我们使9个分叉进程开始消耗CPU并同时执行IO。
  2. 需要太多保留的额外内存,不能用作实际存储,因为在写入大量应用程序时,Redis可能会使用快照期间通常使用的内存的2倍。所以...如果我们想要在这个节点上使用100Gb的redis进程 - 我们应该在同一时间额外使用100Gb来分配所有进程以保证安全。
  3. 是否有任何最佳做法可以修改此设置并使Redis进程逐个开始保存或至少进行一些随机化?

    我只有一个想法是在redis.conf中禁用日程安排并编写cron脚本,这将逐个开始保存时间延迟。但是这个解决方案看起来像一个黑客,它应该是其他一些做法。

0 个答案:

没有答案