概述
perf 是開發者和系統管理員診斷和優化效能問題的必備工具。它透過各種子命令提供廣泛的效能分析功能,包括統計數據收集、事件記錄和報告生成。
主要功能
- CPU 設定檔 (CPU 使用率、呼叫堆疊分析)
- 硬體事件監控 (快取遺失、分支預測失敗等)
- 軟體事件監控 (排程事件、分頁錯誤等)
- 系統呼叫追蹤與分析
- 動態追蹤 (kprobes, uprobes)
主要選項 (子命令)
perf 透過各種子命令執行功能。每個子命令都有其獨特的選項。
perf stat:收集統計數據
perf record:記錄效能數據
perf report:分析記錄的數據
perf list:可用事件列表
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`perf` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
perf 命令的各種使用範例。
查看 ls 命令的執行統計數據
perf stat ls
查看 ls 命令執行期間的 CPU 週期、指令數、快取遺失等基本效能統計數據。
監控特定程序 5 秒
perf stat -p 1234 sleep 5
監控 PID 為 1234 的程序的效能統計數據 5 秒鐘。(需要替換為實際 PID)
記錄應用程式執行期間的呼叫圖
perf record -g ./my_app
記錄 my_app 執行期間包含函數呼叫堆疊資訊的效能數據。記錄的數據將儲存到 perf.data 檔案中。
分析記錄的數據
perf report
以互動方式分析 perf record 產生的 perf.data 檔案,以視覺化方式查看效能瓶頸。
查看可用的硬體事件列表
perf list hw
查看當前系統中 perf 可監控的所有硬體效能事件列表。
安裝
perf 可能未預設安裝在大多數 Linux 發行版中。您可以使用以下命令進行安裝。
Debian/Ubuntu
sudo apt update
sudo apt install linux-tools-common linux-tools-$(uname -r)
在 Debian 或 Ubuntu 型系統上安裝 perf 的命令。您需要安裝與您的核心版本相符的 linux-tools 套件。
CentOS/RHEL/Fedora
sudo yum install perf
# 或 sudo dnf install perf (Fedora)
在 CentOS、RHEL 或 Fedora 型系統上安裝 perf 的命令。
提示與注意事項
使用 perf 時的實用提示和注意事項。
Root 權限
大多數 perf 命令需要 Root 權限 (sudo),因為它們會收集系統的整體效能數據。
- 如果執行 perf 命令時出現 'Operation not permitted' 錯誤,請嘗試使用 sudo。
載入核心符號
如果在 perf report 中函數名稱顯示為 'unknown',則需要載入核心符號。這可以透過安裝 'kernel-debuginfo' 或 'kernel-devel' 套件來實現。
- CentOS/RHEL: `sudo debuginfo-install kernel`
- Ubuntu/Debian: `sudo apt install linux-image-$(uname -r)-dbg`
開銷
perf 會收集非常詳細的數據,因此,特別是當使用高取樣頻率執行 `perf record` 時,可能會對系統產生一些開銷。在生產環境中應謹慎使用。
- 對於對效能敏感的系統,請從較低的取樣頻率 (-F 選項) 開始,以盡量減少開銷。
利用 perf top
`perf top` 是一個有用的子命令,可即時顯示 CPU 使用率最高的函數。它適用於簡單的效能監控。
- 使用 `perf top` 可以快速識別當前系統中消耗最多 CPU 時間的函數。