使用pidstat檢視程序資源使用情況

2021-06-14 21:06:37 字數 3871 閱讀 7850

引言

在檢視系統資源使用情況時,很多任務具為我們提供了從裝置角度檢視的方法。例如使用iostat檢視磁碟io統計資訊:

linux:~ # iostat -d 3

device: tps blk_read/s blk_wrtn/s blk_read blk_wrtn

sda

1.67

0.00

40.00

0120

以上顯示的是從sda的角度統計的結果。當我們需要從程序的角度,檢視每個程序使用系統資源的情況,有什麼方法嗎?

使用pidstat工具可以獲取每個程序使用cpu、記憶體和磁碟等系統資源的統計資訊,pidstat由sysstat rpm包提供,可在suse11使用。下面我們來看pidstat的具體用法。

預設輸出

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

linux:~#pidstatlinux 

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

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

執行pidstat預設輸出資訊為系統啟動後到執行時間點的統計資訊,因而即使當前某程序的cpu佔用率很高,輸出中的值有可能仍為0。

指定取樣週期和取樣次數

像sar、iostat等命令一樣,也可以給pidstat命令指定取樣週期和取樣次數,命令形式為」pidstat [option] interval [count]」,以下pidstat輸出以2秒為取樣週期,輸出2次cpu使用統計資訊:

linux:~ #pidstat 2 2linux 

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

_x86_64_

14:40:39 pid %usr %system %guest %cpu cpu command

14:40:41

9567

0.50

1.49

0.00

1.98

2atop

14:40:41

12405

0.00

0.50

0.00

0.50

6pidstat

14:40:41 pid %usr %system %guest %cpu cpu command

14:40:43

7830

0.50

0.50

0.00

1.00

7runhpialarm

14:40:43

12405

0.00

1.00

0.00

1.00

6 pidstat

若不指定統計次數count,則pidstat將一直輸出統計資訊。

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

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

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

以上主要輸出的含義如下:

針對特定程序統計(-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命令以1秒為取樣時間間隔,檢視init程序的記憶體使用情況。

pidstat常用命令

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

pidstat -u 1

pidstat -r 1

pidstat -d 1

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

使用pidstat檢視程序資源使用情況

在檢視系統資源使用情況時,很多任務具為我們提供了從裝置角度檢視的方法。例如使用iostat檢視磁碟io統計資訊 linux iostat d 3 device tps blk read s blk wrtn s blk read blk wrtn sda 1.67 0.00 40.00 0 120 ...

Linux使用Pidstat命令檢視程序狀態資訊

1.前言 本文主要介紹如何使用linux命令來檢視程序狀態和資訊。程序識別符號process identifier pid 是linux unix核心 windows作業系統也不例外 用來標識程序的數字號碼。通常來說,使用fork system call系統呼叫建立新程序。可以在linux下監視每個...

inux 資源監控分析 pidstat

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