CSDN | GitHub |
---|---|
幾款優秀的Linux基准測試工具 | AderXCoding/system/tools/benchmark |
本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可, 轉載請注明出處, 謝謝.
1 性能基准測試工具
基准測試是指運行計算機程序去評估硬件和軟件性能的行為. 硬件基本測試包括評估處理器, 內存, 顯卡, 硬盤, 網絡等不同組件的性能.
基准測試有兩類 : 復合和應用
-
復合基准對一個硬件執行壓力測試, 如連續寫入和讀取數據. 應用基准則是衡量真實世界應用程序如數據庫和服務器的性能.
-
基准測試軟件可以讓系統測試者和用戶客觀獨立的評估硬件性能.
依據其測試類型的不同可以分為 基准性能測試, 文件 I/O
性能測試, 網絡性能測試, 以及多功能的性能測試工具
Linux
下有許多優秀的開源Linux
基准測試工具, 如Phoronix Test Suite
,IOzone
,netperf
等,
2 標准的性能基准測試工具
benchmark | 描述 |
---|---|
sysbench | sysbench 是一款開源的多線程性能測試工具, 可以執行 CPU /內存/線程/IO /數據庫等方面的性能測試. 簡介數據庫目前支持 MySQL/Oracle/PostgreSQL |
hackbench | 源碼下載地址 hackbench.c , 改進的用於測試調度器性能的 benchmark 工具, 就一個源文件,編譯后運行即可, 手冊 |
unixbench | 一個用於測試unix 系統性能的工具,也是一個比較通用的benchmark , 此測試的目的是對類Unix 系統提供一個基本的性能指示, 參見Linux性能測試工具-UnixBench–安裝以及結果分析 |
CineBench | 很有說服力的一套CPU和顯卡測試系統 |
GreekBench | Geekbench測試你的計算機的CPU處理器和內存性能 |
LLCbench | (底層表征基准測試 ow-Level Characterization Benchmarks ) 是一個基准測試工具,集成了 MPBench, CacheBench, 和 BLASBench 測試方法 |
HardInfo | 一個Linux系統信息查看軟件. 它可以顯示有關的硬件, 軟件, 並進行簡單的性能基准測試 |
GtkPerf | 是一種應用程序設計,測試基於GTK +的性能 |
參見
3 文件 I/O
性能基准測試工具
benchmark | 描述 |
---|---|
iozone | iozone 是一款 Linux 文件系統性能測試工具. 它可以測 Reiser4, ext3, ext4 |
iometer | Iometer 是一個工作在單系統和集群系統上用來衡量和描述 I/O 子系統的工具 |
bonnie++ | Bonnie++ 是一個用來測試 UNIX 文件系統性能的測試工具, 主要目的是為了找出系統的性能瓶頸, 其名字來源於作者喜愛的歌手 Bonnie Raitt |
dbench | Dbench和Tbench是用來模擬工業標准的Netbench負載測試工具來評估文件服務器的測試工具 |
4 網絡性能測試工具
Netperf
是一種網絡性能的測量工具, 主要針對基於 TCP或UDP
的傳輸
Netperf
是一種網絡性能的測量工具, 主要針對基於 TCP
或 UDP
的傳輸.
Netperf
根據應用的不同, 可以進行不同模式的網絡性能測試, 即批量數據傳輸(bulk data transfer
)模式和請求/應答(request/reponse
)模式
Netperf
測試結果所反映的是兩個系統之間發送和接受數據的速度和效 率。
Netperf工具是基於C/S模式的。server端是netserver,用來偵聽來自client端的連接,client 端是netperf,用來向server發起網絡測試。在client與server之間,首先建立一個控制連接,傳遞有關測試配置的信息,以及測試的結 果;在控制連接建立並傳遞了測試配置信息以后,client與server之間會再建立一個測試連接,用來來回傳遞着特殊的流量模式,以測試網絡的性能。
5 基准測試工具套件
工具 | 描述 |
---|---|
Phoronix Test Suite | 知名評測機構 Phoronix 提供的 linux 平台測試套件 |
perf | Linux內核中的系統性能調優工具, Perf Event 是一款隨 Linux 內核代碼一同發布和維護的性能診斷工具,由內核社區維護和發展。Perf 不僅可以用於應用程序的性能統計分析,也可以應用於內核代碼的性能統計和分析。得益於其優秀的體系結構設計,越來越多的新功能被加入 Perf,使其已經成為一個多功能的性能統計工具集 。在第一部分,將介紹 Perf 在應用程序開發上的應用 |
rt-tests | “Cyclictest is a high resolution test program, written by User:Tglx, maintained by User:Clark Williams”, 也就是它是一個高精度的測試程序, Cyclictest 是 rt-tests 下的一個測試工具, 也是 rt-tests 下使用最廣泛的測試工具, 一般主要用來測試使用內核的延遲, 從而判斷內核的實時性. |
5.1 phoronix.com
phoronix.com
是業內一個知名的網站,其經常發布硬件性能測評以及 Linux
系統相關的性能測評, Phoronix Test Suite
為該網站旗下的 linux
平台測試套件, Phoronix
測試套件遵循 GNU GPLv3
協議. Phoronix Test Suite
默認是通過命令行來的進行測試的, 但也可以調用GUI
, Phoronix Test Suite
還提供了上傳測試結果的服務,也就說你可以把你的測試結果上傳在網上,從而可以和別的 Linux
用戶測出來的結果進行對比.
5.2 內核中的Perf
Perf
是用來進行軟件性能分析的工具.
通過它, 應用程序可以利用 PMU, tracepoint
和內核中的特殊計數器來進行性能統計. 它不但可以分析指定應用程序的性能問題 (per thread
), 也可以用來分析內核的性能問題, 當然也可以同時分析應用代碼和內核, 從而全面理解應用程序中的性能瓶頸.
最初的時候, 它叫做 Performance counter
, 在 2.6.31
中第一次亮相. 此后他成為內核開發最為活躍的一個領域. 在 2.6.32
中它正式改名為 Performance Event
, 因為 perf
已不再僅僅作為 PMU
的抽象, 而是能夠處理所有的性能相關的事件.
使用 perf
, 您可以分析程序運行期間發生的硬件事件. 比如 instructions retired
, processor clock cycles
等; 您也可以分析軟件事件, 比如 Page Fault
和進程切換.
這使得 Perf
擁有了眾多的性能分析能力. 舉例來說, 使用 Perf
可以計算每個時鍾周期內的指令數, 稱為 IPC
, IPC
偏低表明代碼沒有很好地利用 CPU
. Perf
還可以對程序進行函數級別的采樣, 從而了解程序的性能瓶頸究竟在哪里等等. Perf
還可以替代 strace
, 可以添加動態內核 probe
點, 還可以做 benchmark
衡量調度器的好壞.
人們或許會稱它為進行性能分析的”瑞士軍刀” 和 “倚天劍”.
5.3 rt-tests
cyclictest測試內核的性能, 包括了 hackbench
, cyclictest
等多個 benchmark
工具
Cyclictest的維基主頁這么介紹它“Cyclictest is a high resolution test program, written by User:Tglx, maintained by User:Clark Williams ”,也就是它是一個高精度的測試程序,Cyclictest
是 rt-tests
下的一個測試工具,也是rt-tests 下使用最廣泛的測試工具,一般主要用來測試使用內核的延遲,從而判斷內核的實時性.
參見
本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可, 轉載請注明出處, 謝謝.