码迷,mamicode.com
首页 >  
搜索关键字:slab    ( 162个结果
Kernel那些事儿之内存管理(9) --- Slab(下)
有了Slab的数据结构和操作方法之后,就可以创建一个指定大小的cache,然后在这个cache中申请和释放object。这个做法很适合这种应用场景:频繁地使用一固定大小的内存空间。如果只是偶尔使用某个大小的内存空间,为此新建一个cache就有点得不偿失。针对于这种应用场景,内核提供..
分类:其他好文   时间:2015-07-27 16:34:32    阅读次数:121
memcached全面剖析–2. 理解memcached的内存存储
Slab Allocation机制:整理内存以便重复使用最近的memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。 在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。 但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,...
分类:系统相关   时间:2015-07-26 00:20:06    阅读次数:227
关于kmalloc vmalloc 和malloc
用户态的malloc是申请堆空间的用户态函数。可网上不少人以为malloc在内核态的调用函数是kmalloc或vmalloc,这是不对的 kmalloc是基于slab的,它在通用缓存区申请分配,通用缓存区一共26块缓存块,使用DMA和常规分...
分类:其他好文   时间:2015-07-24 21:04:33    阅读次数:136
深入理解Memcached原理
1.为什么要使用memcache  由于网站的高并发读写需求,传统的关系型数据库开始出现瓶颈,例如: 1)对数据库的高并发读写: 关系型数据库本身就是个庞然大物,处理过程非常耗时(如解析SQL语句,事务处理等)。如果对关系型数据库进行高并发读写(每秒上万次的访问),那么它是无法承受的。 2)对海量数据的处理: 对于大型的SNS网站,每天有上千万次的数据产生(如twitter, 新浪微博)...
分类:系统相关   时间:2015-07-24 09:19:49    阅读次数:228
linux内存源码分析 - SLUB分配器概述
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB,slub分配器是slab分配器的进化版,而slob是一种精简的小内存分配算法,主要用于嵌入式系统。....
分类:系统相关   时间:2015-07-21 12:12:26    阅读次数:316
Kernel那些事儿之内存管理(8) --- Slab(中)
上篇讲了Slab中的数据结构,这篇该讲Slab中的操作了。既然是内存管理,那操作无非就两点:allocate和free。1.申请一个object在Slab中,申请一个object是通过函数kmem_cache_alloc()来完成的。3618void*kmem_cache_alloc(structkmem_cache*cachep,gfp_tflags) 3619{ 3620return_..
分类:其他好文   时间:2015-07-16 22:31:02    阅读次数:273
memcache 永久数据被踢
1.memcache的slab chunk 就像公交车的坐位一样,有大小之分,还有活跃的状态。2.代码index.php -->插入数据,注意$value的大小和重复次数,跟chunk和其数量 有关connect("localhost",11211,2);$value=str_repeat("a",...
分类:系统相关   时间:2015-07-12 12:33:25    阅读次数:167
Kernel那些事儿之内存管理(7) --- Slab(上)
前面讲的buddysystem算法,分配内存的最小单位是一个页面(例如4K)。这对于大的内存申请比较适用。可是实际生活中,Kernel经常需要分配小的内存空间,比如几十个字节,这个时候怎么办呢?不同的人可能会想到不同的解决办法。对于财大气粗的富人一族,办法很简单:申请一个页面..
分类:其他好文   时间:2015-07-12 00:27:06    阅读次数:127
Memcahce(MC)系列(四)度量Memcached性能
检测命中率是一个最基本的、最宏观的方式,使用telnet连接到memcached服务器,然后执行stats命令就可以看到宏观的一些信息。        这个命令中比较关键的属性是get_hits和get_misses,get_hits表示读取cache命中的次数,get_misses是读取失败的次数,即尝试读取不存在的缓存数据。         命中率=get_hits / (get_hits +...
分类:系统相关   时间:2015-06-16 23:04:44    阅读次数:247
进程管理(二)
进程描述符中包含的数据能完整地描述一个正在执行的程序:他打开的文件,进程的地址空间,挂起的信号,进程的状态等。?1:分配进程描述符linux通过使用slab分配器分配task_struct结构,这样能够达到对象复用和缓存着色的目的。现在只需在栈底或栈顶创建一个新的结构struct thread_info结构即可。首先我们先看一下thread_info的结构:struct thread_info {...
分类:系统相关   时间:2015-06-16 09:20:54    阅读次数:193
162条   上一页 1 ... 9 10 11 12 13 ... 17 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!