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) 收藏 举报
浙公网安备 33010602011771号