首頁 > 套件與系統管理 > perf

perf:Linux 效能分析工具

perf 是 Linux 核心內建的強大效能監控與分析工具。它用於追蹤 CPU 使用率、快取遺失、系統呼叫等多種硬體和軟體事件,以識別和優化應用程式及系統的效能瓶頸。它在核心層級運作,提供非常詳細且準確的效能數據。

概述

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 時間的函數。

相同類別命令