Linux命令:實時檢視某個程式佔用記憶體的變化
阿新 • • 發佈:2021-12-17
詳解
一個程式可以包含一個程序或多個程序, 一個程序可以執行一個或多個程式
- 檢視一個或多個程序執行資訊
開頭演示的例子解釋,Agent程式
由多個程序共同來進行,以\|
(邏輯關係中是“或”的意思)區分開來,即qt-client\|sys-app\|clamd
,
top -b n 1| grep 'qt-client\|sys-app\|clamd'
非互動模式下b
,輸出一次n 1
,一個或多個程序的執行資訊,輸出結果如下:
- 使用awk進行資料處理
top -b n 1 | grep 'qt-client\|sys-app\|clamd'|awk '{print $6,$10,$12}'
保留關鍵資訊:$6
程序佔用的實體記憶體,$10
程序使用實體記憶體與總記憶體的百分比,$12
程序啟動命令名稱
如果存在2個及以上程序時,做累加運算,執行如下命令列,分別指定了三個程序為qt-client、sys-app、clamd
top -b n 1| grep 'qt-client\|sys-app\|clamd'|awk '{a+=$6;b+=$10}END{print a,b}'
再列印一些輸出提示,為了更加好看,順便把記憶體大小轉換為單位M的形式
top -b n 1| grep 'qt-client\|sys-app\|clamd'|awk '{a+=$6;b+=$10}END{printf("xxx程式佔用本地記憶體大小為: %2.fM\n",a/1024);printf("xxx程式佔用本地記憶體百分比為:%.2f%%\n",b)}'
- 使用while迴圈語句實時輸出
while true;do sleep 1;top -b n 1| grep 'qt-client\|sys-app\|clamd'|awk '{a+=$6;b+=$10}END{printf("xxx程式佔用本地記憶體大小為: %2.fM\n",a/1024);printf("xxx程式佔用本地記憶體百分比為:%.2f%%\n",b)}';done
經整理後
count=1;while true;do echo "執行次數:$count";((count=$count+1));sleep 1;top -b n 1| grep 'qt-client\|sys-app\|clamd'|awk '{a+=$6;b+=$10}END{printf("Agent程式佔用本地記憶體大小為: %2.fM\n",a/1024);printf("Agen程式佔用本地記憶體百分比為:%.2f%%\n",b)}';done
每次執行從1計數,如果你想接著上一次結束的地方繼續計算,可以把count=1
去掉