小编典典

选择Redis最大内存大小和BGSAVE内存使用情况

redis

我试图找出在以下情况下“ maxmemory”的安全设置:

  • 大量写入的应用程序
  • 8GB RAM
  • 假设其他进程占用约1GB
  • 这意味着redis进程的内存使用量不得超过7GB
  • 每个BGSAVE事件的内存使用量都会增加一倍,原因是:

在redis 文档中,有关BGSAVE事件的内存使用量增加的说法如下:

如果要在写入量很大的应用程序中使用Redis,则在将RDB文件保存在磁盘上或重写AOF日志的同时,Redis最多可能会使用通常使用的内存的2倍。

  • 所述maxmemory极限大致与从redis的-CLI INFO“used_memory”,并没有考虑由redis的考虑使用其它的存储器

我是否正确,这意味着在这种情况下,最大内存设置应该设置为不大于(8GB-1GB)/ 2 = 3.5GB?

如果是这样,我将为redis文档创建拉取请求,以更清楚地反映这一点。


阅读 908

收藏
2020-06-20

共1个答案

小编典典

在这种情况下,我建议限制为3GB。是的,文档非常正确,短期内运行bgsave会使内存需求增加一倍。但是,我更愿意为系统保留2GB的内存,或者为永久主机保留最大的40%的最大内存。

您表示您有一个非常繁重的应用程序。在这种情况下,我强烈建议第二台服务器执行保存操作。我发现在高写入和bgsave对客户端的响应时间会变长。并不是由Redis本身引起的,而是服务器本身的响应。对于虚拟机尤其如此。在这种设置下,您将使用第二台服务器从主服务器作为从服务器并保存到磁盘,而第一台服务器保持响应状态。

2020-06-20