在檢視系統資源使用情況時,很多任務具為我們提供了從裝置角度檢視的方法。例如使用iostat檢視磁碟io統計資訊:
linux:~ # iostat -d 3device: 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 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 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...