pidstat 是 sysstat 套件的一部分,專門監控個別進程的 CPU、I/O、記憶體、分頁錯誤等資源使用情況,支援指定進程 ID、監控子進程、定時輸出報表。本文記錄安裝、基本輸出欄位解讀、I/O 統計、記憶體統計、常用範例與進階組合參數。
# Debian/Ubuntu
apt-get install sysstat
# CentOS/Fedora/RHEL
yum install sysstat
# 開啟 sysstat 服務(可選,用於歷史資料收集)
service sysstat start
chkconfig sysstat on
pidstat
# 相當於 pidstat -p ALL,僅顯示活躍任務
# 間隔 2 秒輸出 5 次報表
pidstat 2 5
# 顯示所有任務(含閒置)
pidstat -p ALL
| 欄位 | 含義 |
|---|---|
| PID | 進程 ID |
| %usr | 用戶態 CPU 使用率(不含 nice 優先級) |
| %system | 核心態 CPU 使用率 |
| %guest | 虛擬機 CPU 使用率 |
| %CPU | 總 CPU 使用率(SMP 環境加 -I 可除以核心數) |
| CPU | 執行該任務的處理器編號 |
| Command | 指令名稱 |

pidstat -d -p 8472
# kB_rd/s : 每秒讀取 KB 數
# kB_wr/s : 每秒寫入 KB 數
# kB_ccwr/s: 每秒取消寫入 KB 數 (writeback cancelled)

pidstat -r -p 8472
# minflt/s : 次要分頁錯誤/秒 (無需讀磁碟)
# majflt/s : 主要分頁錯誤/秒 (需從磁碟載入頁面)
# VSZ : 虛擬記憶體大小 (KB)
# RSS : 常駐記憶體大小 (KB,不可交換)


# 1. 監控記憶體使用,每 2 秒採樣 5 次
pidstat -r 2 5
# 2. 顯示 mysql 所有子進程
pidstat -T CHILD -C mysql
# 3. 綜合報表:CPU + 記憶體 + I/O,人類可讀格式
pidstat -urd -h
# 4. 指定進程持續監控
pidstat -p 1234 1
# 每 1 秒輸出一次,Ctrl+C 停止
| 參數 | 說明 |
|---|---|
| -T TASK|CHILD|ALL | 顯示任務/子進程/全部 |
| -C cmd | 依指令名稱篩選(支援正則) |
| -G pattern | 依進程名稱模式篩選 |
| -h | 人類可讀格式(單位自動換算) |
| -I | SMP 環境下 CPU 使用率除以核心數 |
| -V | 顯示版本 |
Linux pppsetup 指令介紹:Slackware 內建 PPP 連線互動式設定工具
Linux sed 指令新增字串實戰:行首、行尾、指定行、模式匹配四大場景全解析
Linux sed 串流編輯器常用選項與指令實戰範例大全 (刪除、顯示、新增、取代、插入)
Linux 清空檔案內容的 5 種高效方法:從重導向到 /dev/null
crontab 定時任務建立全流程:啟動服務、編輯語法、時間欄位解析、常見範例
Linux 掛載外接設備完整指南:光驅、軟驅、USB 與中文亂碼解決方案
Fedora 找不到 ifconfig/netstat 指令解決:net-tools 套件安裝與 PATH 環境變數修正