嵌入式Linux Yocto新版本内存异常:Active(anon)增量追踪求助
嵌入式Linux RAM优化:Yocto Dunfell与Morty版本的内存差异定位
在相同硬件、近似软件环境下,对比旧版本(Yocto Morty)与新版本(Yocto Dunfell)的内存使用情况:
free命令输出对比
free for new version total used free shared buff/cache available Mem: 57568 41020 2036 324 14512 12520 Swap: 0 0 0 free for old version total used free shared buff/cache available Mem: 57496 34120 2588 284 20788 19516 Swap: 0 0 0
通过free命令可见,新版本的used内存增加了约7M,但执行ps axo pid,rss,cmd | awk '{sum+=$2} END {print sum }'统计所有进程RSS总和时,发现新版本(83652K)反而小于旧版本(124240K),且几乎每个进程的RSS都更小,这与预期不符。
于是通过cat /proc/meminfo获取更详细的内存信息,发现核心差异在于Active(anon)和AnonPages,新版本该部分内存增加了6M,但不清楚这6M内存的来源,求助如何追踪定位。
/proc/meminfo输出对比
新版本(Yocto Dunfell)
MemTotal: 57568 kB MemFree: 1460 kB MemAvailable: 14752 kB Buffers: 132 kB Cached: 11760 kB SwapCached: 0 kB Active: 31456 kB Inactive: 4044 kB Active(anon): 23720 kB Inactive(anon): 212 kB Active(file): 7736 kB Inactive(file): 3832 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 12 kB Writeback: 0 kB AnonPages: 23628 kB Mapped: 6712 kB Shmem: 324 kB Slab: 10464 kB SReclaimable: 5300 kB SUnreclaim: 5164 kB KernelStack: 1496 kB PageTables: 1948 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 28784 kB Committed_AS: 651316 kB VmallocTotal: 958464 kB VmallocUsed: 1228 kB VmallocChunk: 951436 kB
旧版本(Yocto Morty)
MemTotal: 57496 kB MemFree: 1996 kB MemAvailable: 19172 kB Buffers: 908 kB Cached: 12092 kB SwapCached: 0 kB Active: 30168 kB Inactive: 812 kB Active(anon): 18048 kB Inactive(anon): 216 kB Active(file): 12120 kB Inactive(file): 596 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 52 kB Writeback: 0 kB AnonPages: 17984 kB Mapped: 5984 kB Shmem: 284 kB Slab: 14188 kB SReclaimable: 8036 kB SUnreclaim: 6152 kB KernelStack: 1480 kB PageTables: 2120 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 28748 kB Committed_AS: 649728 kB VmallocTotal: 958464 kB VmallocUsed: 1228 kB VmallocChunk: 951556 kB
内容的提问来源于stack exchange,提问作者user303967
相关产品推荐
相关产品推荐

