Redis服务器内存不够用了,这时可以看看是否是内存碎片的原因,不一定只能靠内存扩容来处理。
一、碎片率的计算
我们登陆到Redis服务器上,执行以下命令:
info memory
我们会看到如下的信息:
 
 其中mem_fragmentation_ratio就是内存碎片率。
mem_fragmentation_ratio = used_memory_rss / used_memory
used_memory_rss:是Redis向操作系统申请的内存。
 used_memory:是Redis中的数据占用的内存。
二、内存碎片如何产生的?
Redis内部有自己的内存管理器,为了提高内存使用的效率,来对内存的申请和释放进行管理。
 Redis中的值删除的时候,并没有把内存直接释放,交还给操作系统,而是交给了Redis内部有内存管理器。
 Redis中申请内存的时候,也是先看自己的内存管理器中是否有足够的内存可用。
 Redis的这种机制,提高了内存的使用率,但是会使Redis中有部分自己没在用,却不释放的内存,导致了内存碎片的发生。
三、碎片率的意义:
mem_fragmentation_ratio的不同值,说明不同的情况。
- 大于1:说明内存有碎片,一般在1到1.5之间是正常的。
- 大于1.5:说明

 
                   
                   
                   
                   最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1787
					1787
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            