用於記錄特定進程的所有統計資料的腳本

用於記錄特定進程的所有統計資料的腳本

我想監視特定進程的 CPU 使用情況、磁碟讀取/寫入使用情況,例如./myprocess

監視 CPUtop命令似乎是一個不錯的選擇,而讀取和寫入命令iotop似乎是一個方便的選擇。

例如,為了監控每秒的讀/寫,我使用命令iotop -tbod1 | grep "myprocess"

我的困難是我只想儲存三個變量,即讀/秒、寫/秒、CPU 使用率/秒。您能幫我編寫一個腳本,將上述三個變數的輸出組合起來topiotop儲存到日誌檔案中嗎?

謝謝!

答案1

怎麼樣PID統計?你嘗試過嗎?您可能需要要監視的進程的 Pid,但這應該可以透過命令ps和一些簡單的awk操作輕鬆獲得。

它是軟體包的一部分sysstat,您可以透過鍵入以下命令將其安裝在基於 .deb 的系統中apt-get install sysstat

答案2

您可以嘗試使用prtstat( sudo apt-get install psmisc):

watch -n1 prtstat <PID> | tee mylog.log

它每秒都會轉儲進程統計資料。如果您有興趣解析這些數據,請使用原始版本 (-r)。

例如,如果您想要 utime,您可以將上面的命令擴展為:

prtstat -r 30557 | grep -w utime | awk '{print $4}'

答案3

您可以使用奧德里亞對於此任務:

audria -d 1 $(pidof myprocess) | awk -F "," '{print $7, $28, $32}'

這會將延遲設定為1二、監控我的行程並列印當前的中央處理器(字段 7),讀取位元組/秒(字段 28)和寫入位元組/秒(字段 32)。這裡的讀取/寫入計數器不包括快取字節,如果您想包含它們,請選擇字段2630反而。

如果需要,audria 還能夠執行您的流程,從一開始就對其進行監控。您也可以選擇較短的時間間隔或指定要監視的多個 PID。

答案4

/proc/$PID/status您可以嘗試定期查看內容;這應該會為您提供大量您正在尋找的資訊。

相關內容