小编dad*_*ake的帖子

Redis:"mem_fragmentation_ratio"如何影响性能?

这是我的问题:"mem_fragmentation_rateo"如何影响Redis的性能?

我在stackoverflow和redis.io中做过一些调查,但是我无法找到关于我的问题的明确解释.

正如本电子书https://www.datadoghq.com/wp-content/uploads/2013/09/Understanding-the-Top-5-Redis-Performance-Metrics.pdf第16页中所述,"mem_fragmentation_ratio指标"给出操作系统(used_memory_rss)看到的内存与Redis(used_memory)分配的内存的比率."

因此,正如http://redis.io/commands/INFO中所解释的那样,"理想情况下,used_memory_rss值应该只略高于used_memory.当使用rss >>时,差异很大意味着存在内存碎片(内部或外部) ,可以通过检查mem_fragmentation_ratio来评估.当使用>> rss时,它意味着Redis内存的一部分已被操作系统交换:期望一些重要的延迟".

因此,当我们有更高的"used_memory"而不是"used_memory_rss"时,对Redis节点的负面影响很明显,因为这意味着Redis开始使用Swap,这显然不利于性能.

但是,我们有一个比"used_memory"更高的"used_memory_rss"的情况怎么样?这可能意味着我们的内存分配器没有"收回"过去分配给Redis的部分内存,并且Redis不再使用(可能是由于临时峰值).但是,我无法理解这会如何对Redis性能产生负面影响.为什么我在互联网上阅读很多帖子,人们如此关注高级"mem_fragmentation_ratio"?同样在我之前提到的电子书中,他们建议在1到1.5之间使用"mem_fragmentation_rateo".

在这种情况下,当我们有一个更高的"used_memory_rss"时,Redis真的受到了影响吗?我们是否应该期望使用高"mem_fragmentation_ratio"降低Redis性能?

我决定问你这个问题,因为老实说,我认为,在"mem_fragmentation_ratio"很高的情况下,我们可以在操作系统中"只有"一个问题,"可能"遭受内存不足的困扰:操作系统无法分配新的内存到新进程.无论如何,它不应该直接影响Redis(除非操作系统开始减速,等等).

你能澄清一下我的疑惑吗?您是否有过经历过高"mem_fragmentation_ratio"的经历,并且您开始注意到Redis性能的下降?

谢谢

redis amazon-elasticache

6
推荐指数
1
解决办法
774
查看次数

标签 统计

amazon-elasticache ×1

redis ×1