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

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