pidstat - 監控並統計Linux進程的資料
pidstat命令用來監控被Linux核心管理的獨立任務(進程)。它輸出每個受核心管理的任務的相關資訊。pidstat命令也可以用來監控特定進程的子進程。間隔參數用於指定每次報告間的時間間隔。它的值為0(或者沒有參數)說明進程的統計資料的時間是從系統啟動開始計算的。
如何安裝pidstat
pidstat 是sysstat軟體套件的一部分,sysstat包含很多監控linux系統狀態的工具,它能夠從大多數linux發行版的軟體源中獲得。
在Debian/Ubuntu系統中可以使用下面的命令來安裝
- # apt-get install sysstat
CentOS/Fedora/RHEL版本的linux中則使用下面的命令:
- # yum install sysstat
使用pidstat
使用pidstat不加任何參數等價於加上-p參數,但是只有正在活動的任務會被顯示出來。
- # pidstat
在結果中你能看到如下內容:
- PID - 被監控的任務的進程號
- %usr - 當在使用者層執行(應用程式)時這個任務的cpu使用率,和 nice 優先順序無關。注意這個欄位計算的cpu時間不包括在虛擬處理器中花去的時間。
- %system - 這個任務在系統層使用時的cpu使用率。
- %guest - 任務花費在虛擬機器上的cpu使用率(運行在虛擬處理器)。
- %CPU - 任務總的cpu使用率。在SMP環境(多處理器)中,如果在命令列中輸入-I參數的話,cpu使用率會除以你的cpu數量。
- CPU - 正在運行這個任務的處理器編號。
- Command - 這個任務的命令名稱。
I/O 統計資料
通過使用-d參數來得到I/O的統計資料。比如:
- # pidstat -d -p 8472
IO 輸出會顯示一些內的條目:
- kB_rd/s - 任務從硬碟上的讀取速度(kb)
- kB_wr/s - 任務向硬碟中的寫入速度(kb)
- kB_ccwr/s - 任務寫入磁碟被取消的速率(kb)
頁面失敗和記憶體使用量
使用-r標記你能夠得到記憶體使用量情況的資料。
重要的條目:
- minflt/s - 從記憶體中載入資料時每秒出現的小的錯誤的數目,這些不要求從磁碟載入記憶體頁面。
- majflt/s - 從記憶體中載入資料時每秒出現的較大錯誤的數目,這些要求從磁碟載入記憶體頁面。
- VSZ - 虛擬容量:整個進程的虛擬記憶體使用(kb)
- RSS - 長期記憶體使用量:任務的不可交換實體記憶體的使用量(kb)
舉例
1. 你可以通過使用下面的命令來監測記憶體使用量
- # pidstat -r 2 5
這會給你5份關於page faults的統計資料結果,間隔2秒。這將會更容易的定位出現問題的進程。
2. 顯示所有mysql伺服器的子進程
- # pidstat -T CHILD -C mysql
3. 將所有的統計資料結合到一個便於閱讀的單一報告中:
- # pidstat -urd -h
本文永久更新連結地址: