過程監控和資訊收集

總的來說,你有兩種方法可以監控 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 秒記錄一次所有活動)到這個列表中,很少有專門的命令如 iotopiftop

$ sudo iotop