我是靠谱客的博主 勤奋水池,这篇文章主要介绍linux进程内存查看Linux进程内存占用情况查看,现在分享给大家,希望可以做个参考。

Linux进程内存占用情况查看

1:通过pmap命令查看进程中某个起始地址内存占用持续增长

通过比对不同时间的pmap输出结果,发现000000000078f000起始地址的内存地址内存持续增长

复制代码
1
2
3
4
5
6
7
8
9
10
11
pmap -x 26351 26351: ruby test.rb Address Kbytes RSS Dirty Mode Mapping 0000000000400000 4 4 0 r-x-- ruby 0000000000600000 4 4 4 rw--- ruby 000000000078f000 8308 8200 8200 rw--- [ anon ] 0000003434800000 128 116 0 r-x-- ld-2.12.so ---------------- ------ ------ ------ total kB 168724 12456 8620
2:获取结束地址

根据持续增长的内存地址起始地址,得到其内存地址的结束地址0078f000-00f28000

复制代码
1
2
3
4
5
cat /proc/26351/maps 00400000-00401000 r-xp 00000000 08:03 832052 /usr/local/bin/ruby 00600000-00601000 rw-p 00000000 08:03 832052 /usr/local/bin/ruby 0078f000-00f28000 rw-p 00000000 00:00 0 [heap]
3:gdb dump内存

起始地址,结束地址前需要加上0x

复制代码
1
2
3
4
5
gdb --batch-silent --eval-command 'dump memory /tmp/test 0x7fe3fc000000 0x7fe4036a0000' -p 9395 gdb --batch-silent --eval-command 'dump memory /tmp/test 0x7f18e4000000 0x7f18e8000000' -p 7f18e4000000-7f18e8000000
4:格式化dump内存文件,分析结果
复制代码
1
2
strings /tmp/test | more
复制代码
1
2
3
r = {}; `strings /tmp/test`.split("n").each{|x| r.has_key?(x) ? r[x] +=1 : r[x] = 1}; '' r.sort_by{|k,v| v}.reverse[0..50]

参考文件:

ruby内存分配: https://www.jianshu.com/p/e4f184e92375

最后

以上就是勤奋水池最近收集整理的关于linux进程内存查看Linux进程内存占用情况查看的全部内容,更多相关linux进程内存查看Linux进程内存占用情况查看内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部