過程監控和資訊收集
總的來說,你有兩種方法可以監控 linux 主機上的程序
靜態監控
最廣泛使用的命令是 ps
(即程序狀態)命令用於提供有關當前正在執行的程序的資訊,包括其程序標識號(PID)。
這裡收集特定資訊的幾個有用選項。
列出層次結構中的程序
$ ps -e -o pid,args --forest
列出按%cpu 使用情況排序的程序
$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
列出按 mem(KB)
用法排序的程序。
$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
列出特定程序的所有執行緒(示例中為“firefox-bin”程序)
$ ps -C firefox-bin -L -o pid,tid,pcpu,state
找到特定程序後,你可以使用 lsof
收集與其相關的資訊,以列出程序 ID 已開啟的路徑
$ lsof -p $$
或者基於路徑查詢已指定路徑開啟的列表程序
$ lsof ~
互動監控
最常見的動態監控工具是:
$ top
這主要是預設命令,具有大量選項來實時過濾和表示資訊(與 ps
命令相比)。
仍然有更多的高階選項可以考慮和安裝為 top
替換
$ htop -d 5
要麼
$ atop
哪個能夠將所有活動記錄到日誌檔案中(預設 atop 將每 600 秒記錄一次所有活動)到這個列表中,很少有專門的命令如 iotop
或 iftop
$ sudo iotop