选择Redis最大内存大小和BGSAVE内存使用情况
我试图找出在以下情况下“ 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文档创建拉取请求,以更清楚地反映这一点。
回答:
在这种情况下,我建议限制为3GB。是的,文档非常正确,短期内运行bgsave会使内存需求增加一倍。但是,我更愿意为系统保留2GB的内存,或者为永久主机保留最大的40%的最大内存。
您表示您有一个非常繁重的应用程序。在这种情况下,我强烈建议第二台服务器执行保存操作。我发现在高写入和bgsave对客户端的响应时间会变长。并不是由Redis本身引起的,而是服务器本身的响应。对于虚拟机尤其如此。在这种设置下,您将使用第二台服务器从主服务器作为从服务器并保存到磁盘,而第一台服务器保持响应状态。
以上是 选择Redis最大内存大小和BGSAVE内存使用情况 的全部内容, 来源链接: utcz.com/qa/429353.html