Linux 執行程序實時監控pidstat命令詳解

2021-06-18 16:24:08 字數 3263 閱讀 7397

pidstat主要用於監控全部或指定程序占用系統資源的情況,如cpu,記憶體、裝置io、任務切換、執行緒等。pidstat首次執行時顯示自系統啟動開始的各項統計資訊,之後執行pidstat將顯示自上次執行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。 安裝

yum install sysstat

sysstat

預設引數

執行pidstat,將輸出系統啟動後所有活動程序的cpu統計資訊:

以上輸出,除最開頭一行顯示核心版本、主機名、日期和cpu架構外,主要列含義如下:

linux:~# pidstat

linux

2.6.32.12-0.7-default (linux) 06/18/12

_x86_64_

11:37:19 pid %usr %system %guest %cpu cpu command

……11:37:19

11452

0.00

0.00

0.00

0.00

2bash

11:37:19

11509

0.00

0.00

0.00

0.00

3dd

指定取樣週期和取樣次數

pidstat命令指定取樣週期和取樣次數,命令形式為」pidstat [option] interval [count]」,以下pidstat輸出以2秒為取樣週期,輸出10次cpu使用統計資訊:

pidstat 2

10

cpu使用情況統計(-u)

使用-u選項,pidstat將顯示各活動程序的cpu使用統計,執行」pidstat -u」與單獨執行」pidstat」的效果一樣。

記憶體使用情況統計(-r)

使用-r選項,pidstat將顯示各活動程序的記憶體使用統計:

linux:~ # pidstat -r -p 13084

1linux

2.6.32.12-0.7-default (linux) 06/18/12

_x86_64_

15:08:18 pid minflt/s majflt/s vsz rss %mem command

15:08:19

13084

133835.00

0.00

15720284

15716896

96.26

mmmm

15:08:20

13084

35807.00

0.00

15863504

15849756

97.07

mmmm

15:08:21

13084

19273.87

0.00

15949040

15792944

96.72 mmmm

以上各列輸出的含義如下:

minflt/s: 每秒次缺頁錯誤次數(minor page faults),次缺頁錯誤次數意即虛擬記憶體位址對映成物理記憶體位址產生的page fault次數

majflt/s: 每秒主缺頁錯誤次數(major page faults),當虛擬記憶體位址對映成物理記憶體位址時,相應的page在swap中,這樣的page fault為major page fault,一般在記憶體使用緊張時產生

vsz: 該程序使用的虛擬記憶體(以kb為單位)

rss: 該程序使用的物理記憶體(以kb為單位)

%mem: 該程序使用記憶體的百分比

command: 拉起程序對應的命令

io情況統計(-d)

使用-d選項,我們可以檢視程序io的統計資訊:

linux:~ # pidstat -d 1

2linux

2.6.32.12-0.7-default (linux) 06/18/12

_x86_64_

17:11:36 pid kb_rd/s kb_wr/s kb_ccwr/s command

17:11:37

14579

124988.24

0.00

0.00

dd17:11:37 pid kb_rd/s kb_wr/s kb_ccwr/s command

17:11:38

14579

105441.58

0.00

0.00

dd

輸出資訊含義

kb_rd/s: 每秒程序從磁碟讀取的資料量(以kb為單位)

kb_wr/s: 每秒程序向磁碟寫的資料量(以kb為單位)

kb_ccwr/s

: 該程序每秒取消磁碟寫入的數量

(以kb為單位)

command: 拉起程序對應的命令

針對特定程序統計(-p)

使用-p選項,我們可以檢視特定程序的系統資源使用情況:

linux:~ # pidstat -r -p 1

1linux

2.6.32.12-0.7-default (linux) 06/18/12

_x86_64_

18:26:17 pid minflt/s majflt/s vsz rss %mem command

18:26:18

10.00

0.00

10380

6400.00

init

18:26:19

10.00

0.00

10380

6400.00

init

……

使用pidstat進行問題定位時,以下命令常被用到:

pidstat -u 1

pidstat -r 1

pidstat -d 1

以上命令以1秒為資訊採集週期,分別獲取cpu、記憶體和磁碟io的統計資訊。

參考:

Linux 執行程序實時監控pidstat命令詳解

pidstat主要用於監控全部或指定程序占用系統資源的情況,如cpu,記憶體 裝置io 任務切換 執行緒等。pidstat首次執行時顯示自系統啟動開始的各項統計資訊,之後執行pidstat將顯示自上次執行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。預設引數 執行pi...

Linux 執行程序實時監控pidstat命令詳解

pidstat主要用於監控全部或指定程序占用系統資源的情況,如cpu,記憶體 裝置io 任務切換 執行緒等。pidstat首次執行時顯示自系統啟動開始的各項統計資訊,之後執行pidstat將顯示自上次執行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。預設引數 執行pi...

Linux 的程序操作(執行程序)

如果需要在子程序中執行一些自定義的動作,則需要呼叫 exec 函式族。當程序呼叫 exec 系列函式的時候,該程序執行的程式被立即替換為新的程式,而新程式則從 main 函式開始執行,並立刻替換掉了當前程序的正文段 資料段 堆和堆疊,需要注意的是其程序識別符號和程序描述符是不會改變的。exec 函式...