当超群发来的问题,一个低端内存耗尽导致系统panic的问题,通过写一个死循环循环调用同一个脚本,然后盯着/proc/slabinfo看,就会发现size-32类型的slab火速增加。通过简单直接有效古老的排除法(感谢每日持续集成编译),确定是内核的问题,老的内核没问题,新内核有问题,本来直接上大神器,kmemcheck,奈何看了一眼内...

Hugepage内存管理机制,故名就是大页内存管理,对应就是页管理,之所以有Hugepage机制诞生,正是因为之前的页管理有了很大问题。 Linux在内存管理中采用受保护的虚拟地址模式,在代码中地址分为3类:逻辑地址、线性地址、物理地址。程序使用具体内存简单说就是逻辑地址通过分段机制映射转化为线性地址,然后线性地址通过...

CPU的亲和性, 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,亲和性是从affinity翻译过来的,应该有点不准确,给人的感觉是亲和性就是有倾向的意思,而实际上是倒向的意思,称为CPU关联性更好,程序员的土话就是绑定CPU,绑核。 在多核运行的机器上,每个CPU本身自己会有缓存,缓存着进程使用的...

标题党,名字起的很大,就是目前我自己的知识管理框架。 首先是获取知识,之前我是用google reader的,可惜他被google抛弃了,后面测试了一下feedly,网站非常不稳定,iphone客户端直接提示服务器压力大导致崩溃,还好有reeder,可以连接到feedly的api获取信息,至少主要应用场景移动端问题解决了。顺便插嘴一下对RSS的...

接上篇Linux内核读文件流程,写这篇Linux内核写文件流程。文中涉及的内核代码版本是linux内核版本号:3.0.13-0.27 sles11sp2版本。 用户态write函数到内核态的调用是: SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf, size_t, count) SYSCALL_DEFINE3调用的vfs_write,vfs_write调用rw_verify_...

主要描述从用户态启动文件读开始,直到磁盘驱动,linux内核代码所走过的流程。阅读者需要对linux内核的内存管理、ext系列的文件系统,块设备,页高速缓存等有一定了解,不了解也没关系,顺着代码读可能会吃力点而已,鉴于不可能将代码全贴出来,中间缺失的部分,请大家自行脑补吧。至于写文章的原因,作为一名高效的客服...

之前大二的时候在blogger.com上面混过,后来被墙后,转战到yo2,然后它也挂了,恰好也进入了苦B的工作期,后来想把博客迁到庙(miao.in)里面去,还没来的及行动,就看到了新浪的云计算业务出来了(吐槽阿里云坐拥众淘宝商户按硬件计费,更像卖主机的,盛大更是连你的数据都是可以丢的),然后便把博客迁过去,但是感觉速...

在机器学习和数据挖掘领域里,决策树是一种有效的归纳推理算法之一,它将训练样本抽象出多个特征函数,通过离散值的函数输出归纳成一个决策树,由于是有训练样本统计而来,它对样本噪声有一定的健壮性。 一、什么是决策树   直接看图说话: 一个母亲给女儿介绍相亲对象,女孩见不见呢?(图片剽窃自CodingLabs)...

看内核代码内存部分时有红黑树的利用,顺便翻了一下经典的排序算法,比较笨的算法如插入排序、冒泡排序的时间复杂度到了θ(N^2)的程度,但诸如堆排序、归并排序和快速排序的复杂度优化到了θ(NlogN)的程度,其中快排成为均匀杂序里面最快的实践算法,自我YY想着排序算法难道不能优化了?一查阅果真如此:基于比较排序的一...

跳表SkipList,顾名思义是链表的一种,或者说它是单链表的变异实现,使用跳表可以将查询操作的复杂度控制到θ(lg N),而普通的链表只能通过顺序查找,复杂度为θ(N),如此跳表的优势就很明显了,虽然它是通过以空间换时间搞定的。 先看一下普通的有序单链表: 要在里面查找一个值就需要顺序比较,复杂度大家都清楚了。...