Maison > base de données > tutoriel mysql > le corps du texte

简单理解Memcached的Slab Allocation

WBOY
Libérer: 2016-06-07 16:30:08
original
1591 Les gens l'ont consulté

简单理解Memcached的Slab Allocation包含如下内容: Slab Allocation Growth Factor Slab Allocation的缺点 slab Allocation Slab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被

简单理解Memcached的Slab Allocation包含如下内容:

  1. Slab Allocation
  2. Growth Factor
  3. Slab Allocation的缺点

slab Allocation

Slab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被称为slab。

Memcached的内存分配以Page为单位,Page默认值为1M,可以在启动时通过-I参数来指定。

Slab是由多个Page组成的,Page按照指定大小切割成多个chunk。其结构图如下:

Memcache's slab page and chunk

Growth Factor

memcached在启动时通过-f选项可以指定 Growth Factor因子。该值控制slab之间的差异,chunk大小的差异。默认值为1.25。

通过memcached-tool查看指定memcached实例的不同slab状态,可以看到各Item所占大小(chunk大小)差距为1.25

Memcache Slab Growth Factor

Slab Allocation的缺点

Slab Allocation可以有效的解决内存碎片问题,但是在如下情况下,会导致内存的浪费:

  1. 每个slab的chunk大小是固定的,当item的占用空间实际小于chunk大小时,会出现内存浪费
  2. 每个slab的大小是固定的(因为page是固定的),当slab不能被他所拥有的chunk整除时,会出现内存浪费
  3. 按照Growth Factor因子生成指定大小的slab,而某slab id根本未被使用时,会出现内存浪费

参考资料

memcached全面剖析–2.理解memcached的内存存储
Memcache内存分配策略
Memcached二三事儿

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!