linux - 为什么 pmap 显示 strace 没有的映射?
问题描述
我正在调查一个进程的内存使用情况,该进程(意外地)保留了VIRT
. 如果我pmap
为那个过程做,我可以看到一些强大的分配,例如:
00007f39ea671000 317288696K rw--- [ anon ]
我正在strace
跟踪所有与内存相关的系统调用并打印它们的 stracktraces 来运行我的进程。
strace -o ~/strace.out -f -e trace=mremap,mmap,munmap,brk -k <command>
我希望我能够在 中找到这个分配strace.out
,所以我 grep :
cat strace.out | grep -A10 7f39ea671000
我只看到这个调用mmap
:
106224 mmap(NULL, 201543680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f39ea671000
> /usr/lib/x86_64-linux-gnu/libc-2.29.so(mmap64+0x22) [0xf5252]
> /usr/lib/x86_64-linux-gnu/libc-2.29.so(_IO_str_seekoff+0x2ff4) [0x84ab4]
> /usr/lib/x86_64-linux-gnu/libc-2.29.so(_IO_str_seekoff+0x3e0b) [0x858cb]
> /usr/lib/x86_64-linux-gnu/libc-2.29.so(__libc_malloc+0x22f) [0x869ff]
...
这里发生了什么?是否pmap
显示了夸大的映射大小?还是我错过了一些系统调用?
解决方案
推荐阅读
- javascript - Paho Javascript MQTT 订阅多个主题
- delphi - Trim(IntToStr(Value)) 是否有意义?
- javascript - 反应推送历史后,html脚本不起作用,但刷新
- python - 在给定路径上找不到 Movie.py 错误文件
- python - 用特定数字替换字符串列表中的单词(Python)
- matlab - 如何在 Bash 或 Ksh 中从另一个 .csv 写入 .csv
- python - 从python中的dict中的值替换部分字符串
- python - 如何在当前行的新列中获取列的前 n 个值的列表?
- css - 如何去除antd表单标签中的填充
- amazon-web-services - AWS CLI 和 MFA