[Linux] top 命令看到 VSZ 在逐步增大

在 debug 看到一个程序的 VSZ 在逐步增大,我在理清是否发生了 memory leak 或者有没有潜在的问题. 这个程序最早的版本是没有这个问题的,我们魔改了很多。由于各种原因,不方便用 git bisect 来 debug.所以想请教一下大家。PID 为 7512 。
可以看大 VSZ 和%VSZ 分别为 2173m 和 29%。
root@RaspberryPi-Gateway:~# top
Mem: 453176K used, 7283640K free, 77544K shrd, 11840K buff, 119616K cached
CPU: 2% usr 4% sys 0% nic 93% idle 0% io 0% irq 0% sirq
Load average: 0.30 0.27 0.27 3/300 4429
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
4429 3665 root R 2052 0% 3% top
7512 1 root S 2173m 29% 2% /usr/bin/CcspWifiSsp -subsys eRT.

奇怪的是:
1.似乎涨到 29%不会继续涨了

2.用下列命令看 heap 信息,发现 heap 也不大。
root@RaspberryPi-Gateway:~# grep -A 15 heap /proc/7512/smaps
00024000-00066000 rw-p 00000000 00:00 0 [heap]
Size: 264 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 248 kB
Pss: 248 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 248 kB
Referenced: 228 kB
Anonymous: 248 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
FilePmdMapped: 0 kB

00066000-002a0000 rw-p 00000000 00:00 0 [heap]
Size: 2280 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 2216 kB
Pss: 2216 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 2216 kB
Referenced: 2216 kB
Anonymous: 2216 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
FilePmdMapped: 0 kB

3.还是看 /proc/7512/smaps 里面的信息,发现一个我不知道的区域占了大量虚拟内存
2fc99000-b16fe000 rw-p 00000000 00:00 0
Size: 2124180 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 16 kB
Pss: 16 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 16 kB
Referenced: 16 kB
Anonymous: 16 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
FilePmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 0 kB
THPeligible: 0
VmFlags: rd wr mr mw me ac

额外补充的 Notes:
1. 这个 top 命令来自于嵌入式的 busybox
2. free 看到的信息:
root@RaspberryPi-Gateway:~# free -m
total used free shared buff/cache available
Mem: 7555 313 7117 75 124 7045
Swap: 0 0 0

发表回复

您的电子邮箱地址不会被公开。