在C中,使用malloc分配內存時會產生內存碎片,即空閒零碎的空間無法利用。
Memcached中的Slab Allocator機制緩解這一問題。
基本原理:
按照預先規定的大小,將內存分成數個slab倉庫,然後將各倉庫分割成特定長度的塊(chunk),並把尺寸相同的塊分成組,以完全解決內存碎片問題
Memcached根據收到的數據的大小,選擇最適合數據大小的slab。Memcached保存slab內空閒chunk的列表,根據該列表選擇chunk,然後將數據緩存於其中。
根據緩存數據大小的變化規律,設置塊之間的增長因子(Grow Factor):<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20150529/2015052910185819.jpg" alt="">
默認為1.25