理解Linux VM pressure

原生Linux内核是把vmpressure和CONFIG_MEMCG绑定的,是给用户态用的。makefile里写的很清楚:obj-$(CONFIG_MEMCG) += memcontrol.o page_cgroup.o vmpressure.o内核文档也放到了cgroup下memory.txt:Memory PressureThe pressure level noti...阅读全文

zone水位阈值代码分析

内核zone里有个水位的概念,根据这个水位判断内存压力,从而进行内存回收,版本3.18。struct zone { /* Read-mostly fields */ /* zone watermarks, access with *_wmark_pages(zone) macros */ unsigned long watermark[NR_WM...阅读全文

Linux内存模型分析

kernel版本是3.18,先看下内存描述几个概念。zone 概念NUMA全称Non-Uniform Memory Access,主要说的是cpu访问memory bank依赖他们之间的距离成本问题。memory被划分成bank,每一个bank叫做node,每一个node被分成很多块叫zones, node用pglist_data表示, zone里包含pages/* *...阅读全文