
我想監視特定進程的 CPU 使用情況、磁碟讀取/寫入使用情況,例如./myprocess
。
監視 CPUtop
命令似乎是一個不錯的選擇,而讀取和寫入命令iotop
似乎是一個方便的選擇。
例如,為了監控每秒的讀/寫,我使用命令iotop -tbod1 | grep "myprocess"
。
我的困難是我只想儲存三個變量,即讀/秒、寫/秒、CPU 使用率/秒。您能幫我編寫一個腳本,將上述三個變數的輸出組合起來top
並iotop
儲存到日誌檔案中嗎?
謝謝!
答案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)。這裡的讀取/寫入計數器不包括快取字節,如果您想包含它們,請選擇字段26和30反而。
如果需要,audria 還能夠執行您的流程,從一開始就對其進行監控。您也可以選擇較短的時間間隔或指定要監視的多個 PID。
答案4
/proc/$PID/status
您可以嘗試定期查看內容;這應該會為您提供大量您正在尋找的資訊。