首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
Distributions
›
Ubuntu
›
Fedora
›
CentOS
中文资源站
›
网易开源镜像站
V2EX
›
Linux
top 命令看到 VSZ 在逐步增大
huangya
·
2022-07-30 20:56:02 +08:00
· 2455 次点击
这是一个创建于 876 天前的主题,其中的信息可能已经有所发展或是发生改变。
在 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
vsz
Heap
root
referenced
3 条回复
•
2022-09-03 22:02:55 +08:00
1
nuk
2022-07-31 02:44:29 +08:00
应该只是 mmap 了,但还没访问的未分配页。原因各种各样,不过只要不做 fork ,一般是没啥问题的。
2
huangya
OP
2022-09-02 18:42:34 +08:00
@
nuk
不好意思这么久才回复,但我其实一直在追这个问题。因为我发现似乎另外一个遇到的内存问题可能与之相关,我看到有时程序调用 calloc ( x,y )不成功。x *y 大概有几千个字节。想听听你的看法。或者你能否多讲讲此贴的问题的可能的原因。非常感谢!
3
nuk
2022-09-03 22:02:55 +08:00
@
huangya
建议跟踪一下内存分配函数,这片 2G 的内存怎么看都像 INT_MAX,mmap 下个断点
b mmap if len>1<<20
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
3385 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms ·
UTC 11:23
·
PVG 19:23
·
LAX 03:23
·
JFK 06:23
Developed with
CodeLauncher
♥ Do have faith in what you're doing.