您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何分析pidstat,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
pidstat
pidstat是sysstat工具的一個命令,用于監控全部或指定進程的CPU,內存,線程,設備IO等系統資源的占用情況。pidstat首次運行顯示自系統啟動開始的各項信息,之后運行pidstat將顯示上次運行該命令以后的統計信息。用戶可以通過指定統計的次數和時間來獲得所需要的統計信息。
用法: pidstat [ 選項 ] [ <時間間隔> [ <次數> ] ]
選項:
[ -C <命令> ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]
[ -p { <進程號> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]
常用的參數:
-u:默認參數,顯示各個進程的使用統計
-r:顯示各個進程的內存使用統計
-d:顯示各個進程的IO使用情況
-p:指定進程號
-w:顯示每個進程的上下文切換
-t:顯示選擇任務的線程的統計信息的額外信息
-T{ TASK | CHILD | ALL }:TASK表示報告獨立的task,CHILD關鍵字表示報告進程下所有線程統計信息,ALL表示報告獨立的task和task下面的所有線程。
注意:task和子線程的全局的統計信息和pidstat選項無關。這些統計信息不會對應到當前的統計間隔,這些統計信息只有在子線程kill或者完成的時候才會被收集。
-V:版本號
-h:在一行上顯示了所有活動,這樣其他程序容易解析
-I:在SMP環境,表示任務的CPU使用率/內核數量
-l:顯示命令名和所有參
查看所有進程的CPU使用情況
pidstat 和 pidstat -u -p ALL 是等效的。
[root@127-0-0-1 ~]# pidstat
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
07:57:55 PM PID %usr %system %guest %CPU CPU Command
07:57:55 PM 1 0.00 0.00 0.00 0.00 1 init
07:57:55 PM 2 0.00 0.00 0.00 0.00 1 kthreadd
07:57:55 PM 3 0.00 0.00 0.00 0.00 0 migration/0
07:57:55 PM 4 0.00 0.00 0.00 0.00 0 ksoftirqd/0
PID:進程ID
%usr:進程在用戶空間占用CPU的百分比
%system:進程在內核空間占用CPU的百分比
%guest:進程在虛擬機占用CPU的百分比
%CPU:進程占用CPU的百分比
CPU:處理進程的CPU編號
Command:當前進程對應的命令
內存使用情況統計
[root@127-0-0-1 ~]# pidstat -r
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:02:38 PM PID minflt/s majflt/s VSZ RSS %MEM Command
08:02:38 PM 1 0.00 0.00 19352 1472 0.00 init
08:02:38 PM 836 0.00 0.00 215600 75416 0.06 redis-server
08:02:38 PM 1630 0.02 0.00 1601196 115652 0.09 mongod
PID:進程標識符
minflt/s:任務每秒發生的次要錯誤,不需要從磁盤加載頁
majflt/s:任務每秒發生的主要錯誤,需要從磁盤加載頁
VSZ:虛擬機地址大小,虛擬內存的使用KB
RSS:常駐集合大小,非交換區里內存使用KB
Command:task命令名
IO使用情況統計
[root@127-0-0-1 ~]# pidstat -d
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:06:08 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command
08:06:08 PM 1 37.59 186.71 1.63 init
08:06:08 PM 584 0.00 0.01 0.00 khugepaged
08:06:08 PM 836 0.00 0.00 0.00 redis-server
08:06:08 PM 1630 0.00 0.04 0.02 mongod
PID:進程id
kB_rd/s:每秒從磁盤讀取的KB
kB_wr/s:每秒寫入磁盤KB
kB_ccwr/s:任務取消的寫入磁盤的KB。當任務截斷臟的pagecache的時候會發生。
COMMAND:task的命令名
進程上下文切換
[root@127-0-0-1 ~]# pidstat -w -p 24397
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:08:11 PM PID cswch/s nvcswch/s Command
08:08:11 PM 24397 0.00 0.00 mongod
PID:進程id
Cswch/s:每秒主動任務上下文切換數量
Nvcswch/s:每秒被動任務上下文切換數量
Command:命令名
顯示選擇任務的線程的統計信息外的額外信息
[root@127-0-0-1 ~]# pidstat -t -p 24397
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:09:24 PM TGID TID %usr %system %guest %CPU CPU Command
08:09:24 PM 24397 - 0.00 0.00 0.00 0.00 30 mongod
08:09:24 PM - 24397 0.00 0.00 0.00 0.00 30 |__mongod
08:09:24 PM - 24398 0.00 0.00 0.00 0.00 21 |__signalP.gThread
08:09:24 PM - 24399 0.00 0.00 0.00 0.00 2 |__Backgro.kSource
TGID:主線程的標識符
TID:線程id
%usr:進程在用戶空間占用cpu的百分比
%system:進程在內核空間占用cpu的百分比
%guest:進程在虛擬機占用cpu的百分比
%CPU:進程占用cpu的百分比
CPU:處理進程的cpu編號
Command:當前進程對應的命令
關于如何分析pidstat就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。