最近的 Memcached 默认情况下采用了名为 Slab Allocator 的机制分配、管理内存。在该机制出现以前,内存的分配是通过对所有记录简单地进行 malloc 和 free 来进行的。但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下,会导致操作系统比 memcached 进程本身还慢。Slab Allocator 就是为解决该问题而诞生的。

Slab Allocator 的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。

Slab Allocation 的原理相当简单。将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk 的集合)如图所示:

     Memcached 内存存储机制

 

相关文章:

  • 2021-09-10
  • 2021-05-13
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2021-08-06
  • 2021-07-14
  • 2021-08-28
猜你喜欢
  • 2021-11-25
  • 2022-01-13
  • 2021-06-15
  • 2021-09-17
  • 2021-11-28
  • 2022-12-23
  • 2021-05-12
相关资源
相似解决方案