日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Memcached内存存储

發布時間:2025/4/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Memcached内存存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

早就聽說過Memcached獨特的內存管理方式,寫著篇文章的目的就是了解Memcached的內存管理,學習其源代碼.

1.什么是Slab Allocator

memcached默認情況下采用了名為Slab Allocator的機制分配、管理內存,Slab Allocator的基本原理是按照預先規定的大小,將分配的內存分割成特定長度的塊,以期望完全解決內存碎片問題。而且,slab allocator還有重復使用已分配的內存的目的。 也就是說,分配到的內存不會釋放,而是重復利用。

2.Slab Allocation的主要術語

Page 分配給Slab的內存空間,默認是1MB,分配給Slab之后根據slab的大小切分成chunk Chunk 用于緩存記錄的內存空間 Slab Class 特定大小的chunk的組

3.Slab初始化

在Memcached啟動時候會調用slab的初始化代碼(詳見memcached.c中main函數調用slabs_init函數).

slabs_init函數聲明:

1 2 3 4 5 6 7 /** Init the subsystem. 1st argument is the limit on no. of bytes to allocate, 0 if no limit. 2nd argument is the growth factor; each slab will use a chunk size equal to the previous slab's chunk size times this factor. 3rd argument specifies if the slab allocator should allocate all memory up front (if true), or allocate memory in chunks as it is needed (if false) */ void slabs_init(const size_t limit, const double factor, const bool prealloc);

其中limit表示memcached最大使用內存;factor表示slab中chunk size的增長因子,slab中chunk size的大小等于前一個slab的chunk size乘以factor;

memcached.c中main函數調用slabs_init函數:

1 slabs_init(settings.maxbytes, settings.factor, preallocate);

其中settings.maxbytes默認值為64M,啟動memcached使用選項-m設置;settings.factor默認為1.25,啟動memcached時候使用-f設置;preallocate指的是啟動memcached的時候默認為每種類型slab預先分配一個page的內存,默認是false;

1 2 3 4 5 settings.maxbytes = 64 * 1024 * 1024; /* default is 64MB */ ... settings.factor = 1.25; ... preallocate = false

slabs_init函數實現:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 /** * Determines the chunk sizes and initializes the slab class descriptors * accordingly. */ void slabs_init(const size_t limit, const double factor, const bool prealloc) { int i = POWER_SMALLEST - 1; //真實占用大小=對象大小+48 unsigned int size = sizeof(item) + settings.chunk_size; mem_limit = limit; //開啟預分配,則首先將limit大小(默認64M)的內存全部申請 if (prealloc) { /* Allocate everything in a big chunk with malloc */ mem_base = malloc(mem_limit); if (mem_base != NULL) { mem_current = mem_base; mem_avail = mem_limit; } else { fprintf(stderr, "Warning: Failed to allocate requested memory in" " one large chunk.\nWill allocate in smaller chunks\n"); } } //清空所有的slab memset(slabclass, 0, sizeof(slabclass)); while (++i < POWER_LARGEST && size <= settings.item_size_max / factor) { /* Make sure items are always n-byte aligned */ if (size % CHUNK_ALIGN_BYTES) size += CHUNK_ALIGN_BYTES - (size % CHUNK_ALIGN_BYTES); slabclass[i].size = size; slabclass[i].perslab = settings.item_size_max / slabclass[i].size; size *= factor; if (settings.verbose > 1) { fprintf(stderr, "slab class %3d: chunk size %9u perslab %7u\n", i, slabclass[i].size, slabclass[i].perslab); } } //最大chunksize的一個slab,chunksize為settings.item_size_max(默認1M) power_largest = i; slabclass[

轉載于:https://www.cnblogs.com/codershuai/p/6150002.html

總結

以上是生活随笔為你收集整理的Memcached内存存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美国产激情 | 91麻豆精品久久久久蜜臀 | 国产乱仑视频 | 淫片一级国产 | 亚洲av无码国产综合专区 | 日本黄动漫 | 自拍偷拍999 | 日本视频网址 | 久色福利 | 成人av免费在线看 | 夜夜躁狠狠躁 | 亚洲区免费| 99精品乱码国产在线观看 | www亚洲成人 | wwwwww日本| 在线日韩视频 | 99国产精品无码 | 一级黄色片免费看 | 在线观看黄色片网站 | 日韩一级片中文字幕 | 春色网站| 福利亚洲 | 日韩一区二区免费视频 | 在线色av| 中文字幕蜜桃 | 99资源| 丰满少妇一级 | 日韩精品在线网站 | 成人一二三四区 | 91一区二区在线观看 | 色婷婷aⅴ一区二区三区 | 国产真实的和子乱拍在线观看 | 女人18毛片水真多 | 免费色网| 色综合一区二区三区 | 天天操操操 | 久久激情网 | 青青草原国产在线观看 | 国产福利二区 | 色视频在线观看免费 | 欧美精品播放 | 国产精品人八做人人女人a级刘 | 亚洲精品视频一区二区三区 | 日韩成人短视频 | 久久东京 | 久久久久久国产精品免费播放 | 亚洲欧美另类日本 | 在线观看视频福利 | 亚洲图片一区 | www.xxxxx日本 | 成人视屏在线观看 | av基地网| 亚洲精品v天堂中文字幕 | 久久久久中文字幕亚洲精品 | 波多野吉衣在线视频 | 色多多黄色 | 久久精品这里只有精品 | 亚洲av无码一区二区乱子伦 | 成人黄色片在线观看 | 日韩亚洲国产欧美 | 一级黄色免费 | 久久艹综合 | 欧美a级在线观看 | 超碰成人在线观看 | 亚洲精品乱码久久久久久日本蜜臀 | 麻豆视频在线观看免费网站 | 久久婷婷激情 | 亚洲国产日韩欧美 | 久操网站| 亚洲天堂社区 | 无码人妻丰满熟妇区毛片蜜桃精品 | 国产日韩欧美综合在线 | 亚洲第一区在线播放 | 韩国黄色网址 | 妹子色综合 | 男女啪啪网站 | 国产美女明星三级做爰 | 欧美国产高潮xxxx1819 | 精品一区二区免费视频 | 国产xxxx在线观看 | 九九热在线精品视频 | 337p粉嫩日本欧洲亚洲大胆 | 嫩草嫩草嫩草嫩草嫩草 | 久久久久久久久精 | 男女午夜免费视频 | 久久国产视频网 | 国产娇小hdxxxx乱 | 欧美xxxx性xxxxx高清 | 伊人久久免费视频 | 日韩色吧 | 精品香蕉99久久久久网站 | 日本成人在线免费观看 | 亚洲欧美动漫 | 欧美少妇喷水 | av中文资源在线 | 亚洲图片欧美日韩 | 一区二区精品在线观看 | 可以在线看黄的网站 | 手机在线观看毛片 |