美文网首页
[Memcached] MC不能写入超过1M项实践

[Memcached] MC不能写入超过1M项实践

作者: 大头8086 | 来源:发表于2017-07-15 00:52 被阅读118次

    MC通过Slab Allocation分配内存使用,以Page分配Slab和Chunk,最大的Chunk size是Page的大小1M,如果写入的item大于最大的chunk size,MC如何处理?

    1. 启动MC每个Page 1MB, growth factor=1.25,Slab Allocation如图1所示,最大的Chunk Size=1048576 Bytes=1MB。


      图1 growth factor=1.25的Slab Allocation
    2. 当写入的item大于最大的chunk size(1MB)时,如图2,提示SERVER_ERROR object too large for cache,写入的item不能超过Page大小。对于超过1MB的item,拆分成多个小对象存放。
    set map1 3 0 1007571   // 1007571小于chunk size 1MB,可以写入到Slab chunk中
    <29 set map2 3 0 1062302   // 1062302大于chunk size 1MB,不可以写入到Slab chunk中
    >29 SERVER_ERROR object too large for cache
    
    图2 写入的item大于最大的chunk size(1MB)
    为什么单个item的大小被限制在1M字节之内?

    因为Slab Allocation的最大chunk Size是1M字节,每个item都要写入到Slab Chunk中。

    相关文章

      网友评论

          本文标题:[Memcached] MC不能写入超过1M项实践

          本文链接:https://www.haomeiwen.com/subject/agokhxtx.html