Memcached内存利用建议(转载)

内存浪费 
根据memcached的内存原理来提高缓存效率,可以看出memcached内存有所浪费,比如:slab的浪费、chunk的浪费。

 

Slab浪费
比如缓存的数据已经确定每个item的大小在1950左右,那么可以看出按照memcached初始分配内存的方式,将有很多的slab区域被浪费掉,比如下面的1952 区域 有890202个item,但是其他的slab却只有几个item

 

 

Chunk的浪费
每个slab包含了等小的chunk,但是某个slab的chunk可能一直都没有数据。

 

Chunk存储item的浪费
比如定义了chunk的大小为1000,那么每个item都不确定是多大,有的800,有的600,那么可以看出相应的chunk浪费了200byte,400byte。

 

内存利用建议
当了知道了浪费的内存后,应该采取相应的措施来进行内存优化并通过优化使浪费的内存降到最低。

解决方法

1)规划slab=chunk    规划chunk = item
2)使用合适的factor,减少浪费,通过初始化 –f 参数来调整,值越小,slab中的chunk size差距越小,内存浪费越小,1.25是memcached是默认值

 

 

使用了64的操作系统,能分配2GB以上的内存。32位操作系统中,每个进程最多只能使用2GB内存。可以启动多个分配2GB以下内存的进程,但这样一台服务器上的TCP连接数就会成倍增加,管理上也变得复杂,所以尽量统一使用了64位操作系统。

另外,最好分配内存为3GB,是因为内存分配量超过这个值,就有可能导致内存交换(swap),memcached的内存存储“slab”, memcached启动时指定的内存分配量是memcached用于保存数据的量,没有包括“slab”本身占用的内存、以及为了保存数据而设置的管理空间。因此,memcached进程的实际内存分配量要比指定的容量要大。

如果在memcached中的数据大部分都比较小。这样,进程的大小要比指定的容量大很多。因此,改变内存分配量进行验证,确认了3GB的大小不会引发swap。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值