使用 pidstat 取得指定行程的 CPU 使用率

當一支行程在運行時,我們要如何取得該行程的所佔的 CPU 使用率,或是讀寫 I/O 的速率等資訊?top 指令可以同時看到目前系統上正在運行的所有行程,但是無法針對單一行程做追蹤。pidstat 指令則可以幫我們完成以上任務。

installation

預設 Ubuntu 或是 Debian 是沒有安裝 pidstat 指令的,可以輸入以下指令安裝:

$ sudo apt-get install sysstat

Usage

輸入 pidstat [間隔秒數] [-p pid] [-r] [-d] …

felix@felix-Vostro-1450:~/Downloads$ pidstat 5 -p 4008
Linux 3.2.0-60-generic-pae (felix-Vostro-1450) 03/24/2014 _i686_ (2 CPU)
09:18:44 PM PID %usr %system %guest %CPU CPU Command
09:18:49 PM 4008 1.80 10.40 0.00 12.20 1 du
09:18:54 PM 4008 2.20 8.80 0.00 11.00 0 du
09:18:59 PM 4008 2.00 9.60 0.00 11.60 1 du
09:19:04 PM 4008 3.20 10.20 0.00 13.40 1 du
09:19:09 PM 4008 1.00 6.40 0.00 7.40 1 du

間隔秒數表示多久列出一筆資料;pid 為要追蹤的 pid ,可以使用大括號加上逗號同時追蹤多個行程;%CPU 即是該行程所佔的 CPU 使用率。

也可以使用 pidstat 來監控行程讀寫 I/O 的狀態:

felix@felix-Vostro-1450:~/Downloads$ pidstat 5 -p 4008 -d
Linux 3.2.0-60-generic-pae (felix-Vostro-1450) 03/24/2014 _i686_ (2 CPU)
09:30:27 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command
09:30:32 PM 4008 1681.44 0.00 0.00 du
09:30:37 PM 4008 1192.00 0.00 0.00 du
09:30:42 PM 4008 2467.20 0.00 0.00 du
09:30:47 PM 4008 2738.40 0.00 0.00 du
09:30:52 PM 4008 2658.40 0.00 0.00 du

Reference

How to measure the average CPU utilization of a Linux process

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


5 × 四 =