Memcached调优

来源:互联网 发布:澳洲交通软件 编辑:程序博客网 时间:2024/05/21 06:20

1.调优的最高指示精神

提高内存利用率,减少内存浪费


提高命中率(80%,95%?)


调优方法:
f参数:factor增长因子 
n参数:chunk初始值 


低CPU消耗(瓶颈在于网络IO)
libevent事件机制
slab内存预分配机制


适合使用大量低CPU的机器搭建集群
32位机器最大2GB,64GB无限制
-m分配内存为数据区,memcached本身也需要占用内存,因此不可将物理内存全部分配
使用连接池维持连接

2.内存浪费

slab尾部剩余空间
如classid=40中,两个chunk占用了1009384byte,就有1048576-1009384=39192byte被浪费
解决办法:规划slab=chunk*n整数倍


 slab中chunk利用率低:申请的slab只存放了一个Item
解决办法:规划slab=chunk


chunk存储Item浪费
如I tem是100,存到128字节chunk,就有28字节浪费
解决办法:规划chunk=Item


3.使用合适的factor,减少浪费

-f参数:默认为1.25,曾经为2
值越小,slab中chunk size差距越小,内存浪费越小


建议:计算一下数据的预期平均长度,调整factor,以获得最恰当的设置

4.根据数据分布调整factor

非均匀分布,即数据长度集中在几个区域内
如保存用户Session


更极端的状态是等长数据
如定长键值,定长数据
多见于访问、在线统计或执行锁


计算Item长度
key键长+suffix+value值长+结构大小(32字节)
0 0