背景

最近小伙伴们在排查一个线上关于内存oom的问题,前些天来问我某篇文章里的一句话是什么含义:

每次申请的block大小比较有讲究,Linux内核分为LowMemroy和HighMemroy,LowMemory为内存紧张资源,LowMemroy有个阀值,通过free -lm和/proc/sys/vm/lowmem_reserve_ratio来查看当前low大小和阀值low大小。低于阀值时候才会触发oom killer,所以这里block的分配小雨默认的256M,否则如果每次申请512M(大于128M),malloc可能会被底层的brk这个syscall阻塞住,内核触发page cache回写或slab回收。

出自:

http://blog.csdn.net/gugemichael/article/details/24017515

感觉这句话里混淆了好几个概念,并且一些概念跟自己的理解有冲突,在此说一下自己的理解。对内核研究不深,一些概念可能理解有误,因此文章里给出了比较可靠的参考文档,有兴趣可以进一步了解详情。

lowmem与highmem

关于lowmem和highmem的定义在这里就不详细展开了,推荐两篇文章:… Read the rest