我的Redis群集架构运行时的碎片率高达60。 好吗?什么应该是理想的价值?我应该怎么做才能正常?
碎片率在工作时间内降至2,而在非工作时间则高达50-60。
由于我们已将我们的登录/注销会话状态置于redis中,因此导致此问题。所以在redis db中经常插入/删除。
答案 0 :(得分:1)
如果您使用的是lua脚本,并且实例上有一个小数据集,used_memory_lua
可能会偏离此统计信息,因为它不包含在used_memory
中,但它是< / em>包含在RSS中,因此报告的碎片率似乎太大了。
请参阅this github issue,看看您的情况是否相似。
您可以使用命令SCRIPT FLUSH
清除缓存的lua脚本。
答案 1 :(得分:0)
如果服务器的碎片率超过1.5,重新启动Redis实例将允许操作系统恢复以前由于碎片而无法使用的内存。在这种情况下,将警报作为通知可能就足够了。
https://www.datadoghq.com/blog/how-to-monitor-redis-performance-metrics/
答案 2 :(得分:0)
使用命令内存清除功能会有所帮助。
MEMORY PURGE命令尝试清除脏页,以便分配器可以回收这些脏页。
该命令当前仅在将jemalloc用作分配器时实现,并且对所有其他命令的评估为良性NOOP。