zoukankan      html  css  js  c++  java
  • Memcached

    内存管理中一个令人头痛的问题就是内存碎片管理。操作系统、虚拟机垃圾回收在这方面
    想了许多方法:压缩、复制。Memcached使用了一个非常简单的办法---固定空间分配。

    Memcached 将内存空间分为一组slab,每个slab里面又包含一组chunk,同一个slab里面的
    每个chunk的大小是固定的,拥有相同大小的chunk的slab被组织在一起,叫做slab_class,
    如图所示。

    存储数据时根据数据的size大小,寻找一个大于size的最小chunk
    将数据写入。这种内存管理方式避免了内存碎片的管理问题,内存
    的分配和释放都是以chunk为单位的。和其他缓存一样,memcached
    采用LRU算法释放最近最久未被访问的数据占用的空间,释放的
    chunk被标记为魏永,等待下一个合适大小数据的写入。

    当然这种方式也会带来内存浪费的问题。数据只能存入一个比他大的
    chunk里,而一个chunk只能存一个数据,其他的空间被浪费了。
    如果启动参数配置不合理,浪费会更加惊人,发现没有缓存多少
    数据,内存空间就用尽了。

    image

  • 相关阅读:
    机器学习---14
    机器学习---13
    机器学习--10
    机器学习--9
    机器学习--8
    机器学习--7
    机械学习--6
    大数据应用技术课程实践--选题与实践方案
    15.手写数字识别-小数据集
    14.深度学习-卷积
  • 原文地址:https://www.cnblogs.com/pzblog/p/9088235.html
Copyright © 2011-2022 走看看