pidstat指令用來監控被linux核心管理的獨立任務(程序)。它輸出每個受核心管理的任務的相關資訊。pidstat指令也可以用來監控特定程序的子程序。間隔參數用于指定每次報告間的時間間隔。它的值為0(或者沒有參數)說明程序的統計資料的時間是從系統啟動開始計算的。
<a target="_blank"></a>
pidstat 是sysstat軟體套件的一部分,sysstat包含很多監控linux系統狀态的工具,它能夠從大多數linux發行版的軟體源中獲得。
在debian/ubuntu系統中可以使用下面的指令來安裝
# apt-get install sysstat
centos/fedora/rhel版本的linux中則使用下面的指令:
# yum install sysstat
使用pidstat不加任何參數等價于加上-p參數,但是隻有正在活動的任務會被顯示出來。
# pidstat
pidstat
在結果中你能看到如下内容:
pid - 被監控的任務的程序号
%usr - 當在使用者層執行(應用程式)時這個任務的cpu使用率,和 nice 優先級無關。注意這個字段計算的cpu時間不包括在虛拟處理器中花去的時間。
%system - 這個任務在系統層使用時的cpu使用率。
%guest - 任務花費在虛拟機上的cpu使用率(運作在虛拟處理器)。
%cpu - 任務總的cpu使用率。在smp環境(多處理器)中,如果在指令行中輸入-i參數的話,cpu使用率會除以你的cpu數量。
cpu - 正在運作這個任務的處理器編号。
command - 這個任務的指令名稱。
通過使用-d參數來得到i/o的統計資料。比如:
# pidstat -d -p 8472
pidstat io
io 輸出會顯示一些内的條目:
kb_rd/s - 任務從硬碟上的讀取速度(kb)
kb_wr/s - 任務向硬碟中的寫入速度(kb)
kb_ccwr/s - 任務寫入磁盤被取消的速率(kb)
使用-r标記你能夠得到記憶體使用情況的資料。
pidstat pf mem
重要的條目:
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
原文釋出時間:2014-11-19
本文來自雲栖合作夥伴“linux中國”