外观
如何理解kswapd 与直接回收?
标准回答
kswapd等后台回收机制尝试维持可用内存;当分配路径遇到压力时,当前任务也可能进入直接回收,分配者自己承担回收相关等待或工作。回收可能涉及扫描、换出、写回或等待其他资源。
症状可能是分配变慢、CPU与I/O升高、启动和渲染尾延迟变差,并不一定先出现Java OOM。观察回收事件、PSI、进程状态和内存分类,确认是否与异常时段重合。
应用侧可以削减峰值、控制缓存和大分配、释放后台资源;平台侧策略需要结合设备内存与使用场景验证。单独增加某个进程堆上限可能反而加剧全局压力。
追问与回答
内存free很小是不是一定异常
不一定。Linux会利用空闲内存做缓存,关键是可回收能力、实际压力和延迟,不应仅看free一个数字。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q065