memcached五:内存管理

1.内存的碎片化

程序的进进出出,内存的不断释放和获取,内存的碎片不可避免,这些碎片由于太小,不可分配,因此应尽可能减少内存碎片。

memcached使用slab allocator机制来管理内存。

slab allocator原理:预先把内存划分成数个slab class仓库。(一般,每个slab class大小1M)

各仓库,切分成不同尺寸的小块chunk。需要存内存时,判断内容的大小,为其选择合理的仓库。

 

2.优化chunck大小

首先根据实际的缓存数据分析,得出数据大小的成长因子。

假设,缓存中100字节的数据较多,125字节的数据较多,150字节的数据较多,175字节的数据较多;

据此,可以推算成数据大小的成长因子为1.25

根据成长因子,启动memcached服务器,-f参数,即成长因子参数。

-f缺省时,默认的成长因子是1.25

3.memcached中一些参数限制

key的长度:250字节

value的限制:1MB

内存的限制:32位,最大设置到2G;64位,达到千G

 

如果有30G数据要缓存,一般也不会单实例装30G。一般建议,开启多个实例(可以在不同机器,或同台机器的不同端口开启多个实例)。

# /etc/init.d/memcached/bin/memcached -u body -m 64 -p 1211 &

# /etc/init.d/memcached/bin/memcached -u body -m 64 -p 1212 &.

# /etc/init.d/memcached/bin/memcached -u body -m 64 -p 1213 &

posted on 2018-08-19 15:11  myworldworld  阅读(64)  评论(0)    收藏  举报

导航