【IVI】15.1.6 系统稳定性优化篇(LMKD 六)Vmpressure监视器初始化及其工作原理
一,Vmpressure监视器工作原理概览
二,Vmpressure
由于 vmpressure
信号会存在大量误报,因此 lmkd
必须执行过滤以确定是否真的存在内存压力,会导致不必要的 lmkd
唤醒并使用额外更多的的系统资源。使用 PSI 监视器可以实现更精确的内存压力检测,并最大限度地减少过滤开销。PSI统计数据为即将发生的资源短缺提供了预警功能,因而实现更主动、更细致、更准确的响应。因此,Google在Android10的版本为引入lmkd通过内核的PSI来监控内存压力。但当前的android为了对旧版本的支持,依然保留了vmpressure策略。
我们知道vmpressure的核心就是memcg,而memcg是用户态访问内核cgroup的memory子系统的接口。
在memcg的memory pressure中,用户态可以使用压力等级的通知来监测内存分配消耗的情况;基于此内存压力状态,用户态可以实现不同的策略来管理它们内存资源的使用。我常常说,即便基于拖拉机的硬件能力,非业务出身的产品也希望自己的产品能够飞出银河系;那么我们则更需要合理的管理硬件资源,让有限的硬件资源更好的服务于业务。
压力的定义如下:
- low:指系统正在回收内存;基于此通知,我们可以分析vmstat,并且提前作出响应,如停止一些不重要服务的运行;
- medium:指系统正在经历中等程度的内存压力,系