Linux下查看进程占用内存的方式

echo 0 $(awk ‘/TYPE/ {print “+”, $2}’ /proc/pid of PROCESS/smaps) | bc

pid of PROCESS 就是你想查看的进程的进程PID。TYPE的可选值如下

Rss: 内存占用。进程占用的所有内存,包括跟其他进程共享的内存(直接把共享的整个内存数值加上来)。但是这个值没有包含swap
Shared: 该进程跟其他进程分享的内存
Private: 该进程占用的私有内存。通过这个数据你可以查看到内存泄露问题
Swap 该进程用的swap内存
Pss 按比例计算的内存数量。这是一个很好的看总体内存占用量的参数。这是根据共享进程的数量来调整共享内存数量的内存占用。 如果一个进程占用的私有内存是1MB,使用的共享内存有20MB,但是这个共享内存同时有10个进程(包括它自己在内)在使用,那么PSS就是 1 + 20/10 = 3MB

例子
我自己执行这段代码的时候发现bc工具没装,就先用 yum install bc 来安装了一下bc

我先用 ps aux | grep hbase 来找到hbase占用的进程号

然后这是我的执行例子

echo 0 $(awk '/Pss/ {print "+", $2}' /proc/2871/smaps) | bc
186814

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章