linux性能分析命令--pidstat

簡介

pidstat主要用于監(jiān)控全部或指定進程占用系統(tǒng)資源的情況琉雳,如CPU样眠,內存、設備IO翠肘、任務切換檐束、線程等。pidstat首次運行時顯示自系統(tǒng)啟動開始的各項統(tǒng)計信息束倍,之后運行pidstat將顯示自上次運行該命令以后的統(tǒng)計信息被丧。用戶可以通過指定統(tǒng)計的次數(shù)和時間來獲得所需的統(tǒng)計信息。pidstat可以監(jiān)控到進程級別的信息绪妹;這就意味著我們更容易定位問題源頭甥桂。

安裝

yum install sysstat -y

命令參數(shù)

pidstat [ 選項 ] [ <時間間隔> ] [ <次數(shù)> ]
常用的參數(shù):

  • u:默認的參數(shù),顯示各個進程的cpu使用統(tǒng)計
  • r:顯示各個進程的內存使用統(tǒng)計
  • d:顯示各個進程的IO使用情況
  • p:指定進程號
  • w:顯示每個進程的上下文切換情況
  • t:顯示選擇任務的線程的統(tǒng)計信息外的額外信息
  • T { TASK | CHILD | ALL }
    這個選項指定了pidstat監(jiān)控的邮旷。TASK表示報告獨立的task黄选,CHILD關鍵字表示報告進程下所有線程統(tǒng)計信息。ALL表示報告獨立的task和task下面的所有線程婶肩。
    注意:task和子線程的全局的統(tǒng)計信息和pidstat選項無關办陷。這些統(tǒng)計信息不會對應到當前的統(tǒng)計間隔,這些統(tǒng)計信息只有在子線程kill或者完成的時候才會被收集律歼。
  • V:版本號
  • h:在一行上顯示了所有活動民镜,這樣其他程序可以容易解析。
  • I:在SMP環(huán)境险毁,表示任務的CPU使用率/內核數(shù)量
  • l:顯示命令名和所有參數(shù)

具體用法

1殃恒、pidstat 默認顯示所有進程的cpu使用情況

等同于pidstat -u -p ALL植旧,等同于pidstat -u

[root@vircent7 ~]# pidstat
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)        2021年12月15日  _x86_64_        (4 CPU)

14時19分24秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
14時19分24秒     0         1    0.00    0.04    0.00    0.04     1  systemd
14時19分24秒     0         2    0.00    0.00    0.00    0.00     0  kthreadd
14時19分24秒     0         6    0.00    0.00    0.00    0.00     0  ksoftirqd/0
14時19分24秒     0         7    0.00    0.00    0.00    0.00     0  migration/0
14時19分24秒     0         9    0.00    0.02    0.00    0.02     3  rcu_sched
  • PID:進程ID
  • %usr:進程在用戶空間占用cpu的百分比
  • %system:進程在內核空間占用cpu的百分比
  • %guest:進程在虛擬機占用cpu的百分比
  • %CPU:進程占用cpu的百分比
  • CPU:處理進程的cpu編號
  • Command:當前進程對應的命令
2辱揭、pidstat -r 內存使用情況統(tǒng)計

使用-r選項离唐,pidstat將顯示各活動進程的內存使用統(tǒng)計:

[root@vircent7 ~]# pidstat -r
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)        2021年12月15日  _x86_64_        (4 CPU)

15時09分03秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15時09分03秒     0         1      1.02      0.00  128340   6960   0.37  systemd
15時09分03秒     0       591      0.34      0.00   39056   3312   0.18  systemd-journal
15時09分03秒     0       616      0.10      0.00  201128   8128   0.43  lvmetad
15時09分03秒     0       628      0.19      0.00   49052   5504   0.29  systemd-udevd
15時09分03秒     0       721      0.01      0.00   55532    856   0.05  auditd

  • minflt/s: 每秒次缺頁錯誤次數(shù)(minor page faults),次缺頁錯誤次數(shù)意即虛擬內存地址映射成物理內存地址產生的page fault次數(shù)
  • majflt/s: 每秒主缺頁錯誤次數(shù)(major page faults)问窃,當虛擬內存地址映射成物理內存地址時亥鬓,相應的page在swap中,這樣的page fault為major page fault域庇,一般在內存使用緊張時產生
  • VSZ: 該進程使用的虛擬內存(以kB為單位)
  • RSS: 該進程使用的物理內存(以kB為單位)
  • %MEM: 該進程使用內存的百分比
  • Command: 拉起進程對應的命令
3嵌戈、pidstat -d IO情況統(tǒng)計

使用-d選項,我們可以查看進程IO的統(tǒng)計信息:

[root@vircent7 ~]# pidstat -d
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)        2021年12月15日  _x86_64_        (4 CPU)

15時14分13秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
15時14分13秒     0         1      5.25      0.16      0.07  systemd
15時14分13秒     0       509      0.00      0.00      0.00  xfsaild/dm-0
15時14分13秒     0       591      0.07      0.00      0.00  systemd-journal
15時14分13秒     0       616      0.00      0.00      0.00  lvmetad
15時14分13秒     0       628      0.79      0.00      0.00  systemd-udevd
15時14分13秒     0       721      0.01      0.03      0.00  auditd
  • kB_rd/s:每秒從磁盤讀取的KB
  • kB_wr/s:每秒寫入磁盤KB
  • kB_ccwr/s:任務取消的寫入磁盤的KB听皿。當任務截斷臟的pagecache的時候會發(fā)生熟呛。
  • COMMAND:task的命令名
4、pidstat -w 顯示每個進程的上下文切換情況

[root@vircent7 ~]# pidstat -w
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj) 2021年12月15日 x86_64 (4 CPU)

15時16分24秒   UID       PID   cswch/s nvcswch/s  Command
15時16分24秒     0         1      0.15      0.15  systemd
15時16分24秒     0         2      0.02      0.00  kthreadd
15時16分24秒     0         4      0.00      0.00  kworker/0:0H
15時16分24秒     0         6      0.08      0.00  ksoftirqd/0
  • Cswch/s:每秒主動任務上下文切換數(shù)量
  • Nvcswch/s:每秒被動任務上下文切換數(shù)量
5尉姨、使用-t和-p選項顯示指定進程的線程
[root@vircent7 ~]# pidstat -r -t -p 2602
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)        2021年12月15日  _x86_64_        (4 CPU)

15時22分19秒   UID      TGID       TID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15時22分19秒     0      2602         -      4.27      0.01 2893612 405348  21.54  java
15時22分19秒     0         -      2602      0.08      0.00 2893612 405348  21.54  |__java
15時22分19秒     0         -      2603      0.24      0.00 2893612 405348  21.54  |__java
15時22分19秒     0         -      2604      0.03      0.00 2893612 405348  21.54  |__java
15時22分19秒     0         -      2605      0.02      0.00 2893612 405348  21.54  |__java
  • TGID:主線程id
  • TID: 線程id
6庵朝、使用-C和-G選項顯示符合匹配的進程
[root@vircent7 ~]# pidstat -r -C java
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)        2021年12月15日  _x86_64_        (4 CPU)

15時23分49秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15時23分49秒     0      2602      4.24      0.01 2893612 405348  21.54  java

對監(jiān)控對象進行篩選

7、設定采樣次數(shù)和間隔

以上所有命令結尾又厉,加上兩個數(shù)字九府,即可設定采樣間隔和采樣次數(shù)

[root@vircent7 ~]# pidstat -r -C java 1 5
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)        2021年12月15日  _x86_64_        (4 CPU)

15時25分54秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command

15時25分55秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command

15時25分56秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15時25分57秒     0      2602      2.00      0.00 2893612 405348  21.54  java

15時25分57秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command

15時25分58秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command

平均時間:   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
平均時間:     0      2602      0.40      0.00 2893612 405348  21.54  java

表示每1秒采集一次數(shù)據(jù),一共采集5次

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末覆致,一起剝皮案震驚了整個濱河市侄旬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌煌妈,老刑警劉巖儡羔,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異璧诵,居然都是意外死亡汰蜘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門腮猖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鉴扫,“玉大人,你說我怎么就攤上這事澈缺∑捍矗” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵姐赡,是天一觀的道長莱预。 經常有香客問我,道長项滑,這世上最難降的妖魔是什么依沮? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上危喉,老公的妹妹穿的比我還像新娘宋渔。我一直安慰自己,他們只是感情好辜限,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布皇拣。 她就那樣靜靜地躺著,像睡著了一般薄嫡。 火紅的嫁衣襯著肌膚如雪氧急。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天毫深,我揣著相機與錄音吩坝,去河邊找鬼。 笑死哑蔫,一個胖子當著我的面吹牛钉寝,可吹牛的內容都是我干的。 我是一名探鬼主播鸳址,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瘩蚪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了稿黍?” 一聲冷哼從身側響起疹瘦,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巡球,沒想到半個月后言沐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡酣栈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年险胰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矿筝。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡起便,死狀恐怖,靈堂內的尸體忽然破棺而出窖维,到底是詐尸還是另有隱情榆综,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布铸史,位于F島的核電站鼻疮,受9級特大地震影響,放射性物質發(fā)生泄漏琳轿。R本人自食惡果不足惜判沟,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一耿芹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挪哄,春花似錦吧秕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疗涉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吟秩,已是汗流浹背咱扣。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涵防,地道東北人闹伪。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像壮池,于是被迫代替她去往敵國和親偏瓤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容