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

2021-08-27 10:06:08 字數 3603 閱讀 4825

在檢視系統資源使用情況時,很多任務具為我們提供了從裝置角度檢視的方法。例如使用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

以上顯示的是從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 2 bash

11:37:19 11509 0.00 0.00 0.00 0.00 3 dd

以上輸出,除最開頭一行顯示核心版本、主機名、日期和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 2 atop

14:40:41 12405 0.00 0.50 0.00 0.50 6 pidstat

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

14:40:43 7830 0.50 0.50 0.00 1.00 7 runhpialarm

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 2

linux 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 dd

17: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 1 0.00 0.00 10380 640 0.00 init

18:26:19 1 0.00 0.00 10380 640 0.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 012...

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

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

inux 資源監控分析 pidstat

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