dperf是一個基於DPDK開發,具有千萬級HTTP CPS,幾十億並發,幾百Gbps帶寬的開源壓力測試儀。
perf --help之后可以看到perf的二級命令。
| 序號 | 命令 | 作用 |
| 1 | annotate | 解析perf record生成的perf.data文件,顯示被注釋的代碼。 |
| 2 | archive | 根據數據文件記錄的build-id,將所有被采樣到的elf文件打包。利用此壓縮包,可以再任何機器上分析數據文件中記錄的采樣數據。 |
| 3 | bench | perf中內置的benchmark,目前包括兩套針對調度器和內存管理子系統的benchmark。 |
| 4 | buildid-cache | 管理perf的buildid緩存,每個elf文件都有一個獨一無二的buildid。buildid被perf用來關聯性能數據與elf文件。 |
| 5 | buildid-list | 列出數據文件中記錄的所有buildid。 |
| 6 | diff | 對比兩個數據文件的差異。能夠給出每個符號(函數)在熱點分析上的具體差異。 |
| 7 | evlist | 列出數據文件perf.data中所有性能事件。 |
| 8 | inject | 該工具讀取perf record工具記錄的事件流,並將其定向到標准輸出。在被分析代碼中的任何一點,都可以向事件流中注入其它事件。 |
| 9 | kmem | 針對內核內存(slab)子系統進行追蹤測量的工具 |
| 10 | kvm | 用來追蹤測試運行在KVM虛擬機上的Guest OS。 |
| 11 | list | 列出當前系統支持的所有性能事件。包括硬件性能事件、軟件性能事件以及檢查點。 |
| 12 | lock | 分析內核中的鎖信息,包括鎖的爭用情況,等待延遲等。 |
| 13 | mem | 內存存取情況 |
| 14 | record | 收集采樣信息,並將其記錄在數據文件中。隨后可通過其它工具對數據文件進行分析。 |
| 15 | report | 讀取perf record創建的數據文件,並給出熱點分析結果。 |
| 16 | sched | 針對調度器子系統的分析工具。 |
| 17 | script | 執行perl或python寫的功能擴展腳本、生成腳本框架、讀取數據文件中的數據信息等。 |
| 18 | stat | 執行某個命令,收集特定進程的性能概況,包括CPI、Cache丟失率等。 |
| 19 | test | perf對當前軟硬件平台進行健全性測試,可用此工具測試當前的軟硬件平台是否能支持perf的所有功能。 |
| 20 | timechart | 針對測試期間系統行為進行可視化的工具 |
| 21 | top | 類似於linux的top命令,對系統性能進行實時分析。 |
| 22 | trace | 關於syscall的工具。 |
| 23 | probe | 用於定義動態檢查點。 |
