溫馨提示×

linux perf命令分析結果

小樊
145
2024-11-30 22:12:57
欄目: 智能運維

perf 是一個用于分析 Linux 系統性能的強大工具

  1. perf record:用于記錄性能事件。它會在指定的時間間隔內收集系統中的性能事件數據,并將它們寫入一個名為 perf.data 的文件中。例如,要記錄 CPU 使用率、內存訪問和磁盤 I/O 事件,可以使用以下命令:
sudo perf record -e cpu-clock -e memory-access -e disk-io -- sleep 60

這將記錄 60 秒內的性能事件數據。

  1. perf report:用于分析 perf.data 文件中的性能事件數據。它會生成一個易于理解的報告,顯示各種性能事件的計數、百分比和耗時等信息。例如,要分析剛剛記錄的 perf.data 文件,可以使用以下命令:
sudo perf report -n --stdio

這將顯示一個類似于以下的報告:

# Overhead   Command  Shared Object  Symbol
# ........  ........  .............  ......
#
    50.00%  myprog    myprog          [.] my_function
             |
             |--50.00%-- main
             |          start_thread
             |
             |--50.00%-- main
             |          clone

這個報告表示 my_function 函數占用了 50% 的 CPU 時間,而 main 函數也占用了 50% 的 CPU 時間。

  1. perf stat:用于收集和報告系統性能統計信息。它可以幫助您了解系統的整體性能,例如 CPU 使用率、內存訪問次數和磁盤 I/O 操作等。例如,要收集系統性能統計信息,可以使用以下命令:
sudo perf stat -I 1000

這將每 1000 毫秒收集一次性能統計信息。

  1. perf diff:用于比較兩個 perf.data 文件之間的性能差異。它可以幫助您了解在兩個不同版本之間的性能變化。例如,要比較兩個版本的 perf.data 文件,可以使用以下命令:
sudo perf diff --stdio file1.perf.data file2.perf.data

這將顯示一個類似于以下的報告:

# Diff: myprog-0.1 vs myprog-0.2
#
# Overhead Command  Shared Object Symbol
# ........  ........  .............  ......
#
     -5.00%  myprog    myprog          [.] my_function
             |
             |--5.00%-- main
             |          start_thread
             |
             |--5.00%-- main
             |          clone

這個報告表示 my_function 函數在 myprog-0.2 版本中比 myprog-0.1 版本慢了 5%。

這些只是 perf 命令的一些基本用法。您可以通過查看手冊頁(man perf)和在線文檔來了解更多關于 perf 的信息。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女