linux 效能測試工具Lmbench 使用方法
要評價一個系統的效能,通常有不同的指標,相應的會有不同的測試方法和測試工具,一般來說為了確保測試結果的公平和權威性,會選用比較成熟的商業測試軟體。但在特定情形下,只是想要簡單比較不同系統或比較一些函式庫效能時,也能夠從開源世界裡選用一些優秀的工具來完成這個任務,本文就通過lmbench 簡要介紹系統綜合性能測試。
二、測試軟體 Lmbench是一套簡易,可移植的,符合ANSI/C標準為UNIX/POSIX而制定的微型測評工具。一般來說,它衡量兩個關鍵特徵:反應時間和頻寬。Lmbench旨在使系統開發者深入瞭解關鍵操作的基礎成本。
軟體說明: lmbench是個用於評價系統綜合性能的多平臺開源benchmark,能夠測試包括文件讀寫、記憶體操作、程序建立銷燬開銷、網路等效能,測試方法
Lmbench是個多平臺軟體,因此能夠對同級別的系統進行比較測試,反映不同系統的優劣勢,通過選擇不同的庫函式我們就能夠比較庫函式的效能;更為重要的是,作為一個開源軟體,lmbench提供一個測試框架,假如測試者對測試專案有更高的測試需要,能夠通過少量的修改原始碼達到目的(比如現在只能評測程序建立、終止的效能和程序轉換的開銷,通過修改部分程式碼即可實現執行緒級別的效能測試)。
下載:
www.bitmover.com/lmbench,最新版本3.0-a9
LMbench的主要功能: *頻寬測評工具 —讀取快取檔案 —拷貝記憶體 —讀記憶體 —寫記憶體 —管道 —TCP * 反應時間測評工具
三、測試 在此次測試中我分兩種測試,一個是在我的pc機上測試的,一個是在SEP4020的arm720t平臺上測試的: (1) 在pc機上的測試
測試平臺:HP compoq,fedora 7 Linux 2.6.21
1、 確認安裝了C編譯器,假如沒有需要先安裝
2、 拷貝lmbench原始碼文件lmbench-3.0-a9.tgz到fedora的/root/test目錄下,解壓到當前目錄即可
3、 cd lmbench-3.0-a9,在命令列鍵入make results即可開始編譯測試
4、 假如編譯沒有錯誤,會出現一些選擇提示以對測試進行一個配置並生成配置指令碼,後續的測試將使用該配置指令碼,在以後測試中也能夠直接使用同樣的配置多次測試。配置提示除了測試的記憶體範圍(如“MB [default 371]”時,對記憶體較大的應該避免選擇太大值,否則測試時間會很長)和是否Mail results外,基本上都能夠選擇預設值。
5、 Lmbench根據配置文件執行任何測試項,在results目錄下根據系統型別、系統名和作業系統型別等生成一個子目錄,測試結果文件(system name+序號)存放於該目錄下。
6、 測試完畢執行make see可檢視到測試結果報告,則可以將測試資料/results/i686-pc-linux-gnu/目錄下的檔案匯出為測試報告/results/summary.out檔案,我們檢視summary.out檔案就可以看測試結果了。 (2) 在SEP4020上的測試
測試平臺:SEP4020 evb1.5, Linux 2.6.16
1、 確認宿主機上安裝了交叉編譯編譯器arm-linux-gcc,假如沒有需要先安裝
2、 拷貝lmbench原始碼文件lmbench-3.0-a9.tgz到fedora的/root/test目錄下,解壓到當前目錄即可
3、 cd lmbench-3.0-a9,在命令列鍵入make CC=arm-linu-gcc OS=arm-linux 即可開始編譯測試用例,編譯完成後,會在/root/test/lmbench-3.0-a9/bin下出現一個arm-linux目錄,在這個目錄下就是測試用例的目標檔案。由於我們的目標平臺不支援make命令,所以我們必須另外寫一個執行指令碼,腳步名為run_all.sh,放在scripts下面,內容是: #!/bin/sh echo run the lmbench on sep4020 arm-linux env OS=arm-linux ./config-run env OS=arm-linux ./results
4、 然後將整個lmbench-3.0-a9目錄拷貝到目標機的nfs根目錄下面,然後進入目標機的串列埠終端,在/lmbench-3.0-a9/scripts下面輸入./run_all.sh 假如交叉編譯沒有錯誤,會出現一些選擇提示以對測試進行一個配置並生成配置指令碼,後續的測試將使用該配置指令碼,在以後測試中也能夠直接使用同樣的配置多次測試。配置提示除了測試的記憶體範圍(如“MB [default 19]”時,對記憶體較大的應該避免選擇太大值,否則測試時間會很長)和是否Mail results外,基本上都能夠選擇預設值。
5、 Lmbench根據配置文件執行任何測試項,在results目錄下根據系統型別、系統名和作業系統型別等生成一個子目錄,測試結果文件(system name+序號)存放於該目錄下。
6、 測試完畢執行,在虛擬機器fedora7中進入/nfs/lmbench-3.0-a9 鍵入make see命令可生成測試結果報告,它可以將測試資料/results/i686-pc-linux-gnu/目錄下的檔案匯出為測試報告/results/summary.out檔案,我們檢視summary.out檔案就可以看測試結果了。 四、關於測試結果及說明
make[1]: Entering directory `/nfs/lmbench-3.0-a9/results'
L M B E N C H 3 . 0 S U M M A R Y ------------------------------------ (Alpha software, do not distribute)
Basic system parameters ------------------------------------------------------------------------------ Host OS Description Mhz tlb cache mem scal pages line par load bytes --------- ------------- ----------------------- ---- ----- ----- ------ ---- 192.168.0 Linux 2.6.16 arm-linux 85 60 8 1.0000 1 192.168.0 Linux 2.6.27 arm-linux 86 63 16 1.0000 1 192.168.0 Linux 2.6.16 arm-linux 86 63 16 1.0000 1 192.168.0 Linux 2.6.16 arm-linux 86 63 16 1.0000 1 192.168.0 Linux 2.6.16 arm-linux 86 63 16 1.0000 1 localhost Linux 2.6.21- i686-pc-linux-gnu 1817 8 128 1.3300 1 localhost Linux 2.6.21- i686-pc-linux-gnu 1864 8 128 1.2900 1
Processor, Processes - times in microseconds - smaller is better ------------------------------------------------------------------------------ Host OS Mhz null null open slct sig sig fork exec sh call I/O stat clos TCP inst hndl proc proc proc --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 192.168.0 Linux 2.6.16 85 2.04 8.44 187. 2064 21.0 81.2 9655 42.K 63.K 192.168.0 Linux 2.6.27 86 2.69 8.44 266. 5338 20.7 94.7 10.K 44.K 73.K 192.168.0 Linux 2.6.16 86 2.03 8.34 185. 5100 20.7 85.9 9468 63.K 121K 192.168.0 Linux 2.6.16 86 2.03 8.72 185. 19.K 20.7 84.9 9556 53.K 72.K 192.168.0 Linux 2.6.16 86 2.04 8.33 185. 5321 20.7 80.5 9395 42.K 101K localhost Linux 2.6.21- 1817 1.11 1.26 3.08 5.17 10.2 1.70 2.85 674. 1922 5177 localhost Linux 2.6.21- 1864 1.09 1.26 2.98 5.05 8.94 1.48 3.27 1083 2086 6119
Basic integer operations - times in nanoseconds - smaller is better ------------------------------------------------------------------- Host OS intgr intgr intgr intgr intgr bit add mul div mod --------- ------------- ------ ------ ------ ------ ------ 192.168.0 Linux 2.6.16 11.6 8.6900 52.1 1489.3 255.9 192.168.0 Linux 2.6.27 11.5 8.5800 52.2 1469.2 252.6 192.168.0 Linux 2.6.16 11.5 8.5400 52.2 1472.0 252.9 192.168.0 Linux 2.6.16 11.5 8.6200 52.0 1472.8 251.9 192.168.0 Linux 2.6.16 11.5 8.6400 52.2 1472.5 254.5 localhost Linux 2.6.21- 0.5600 0.2800 0.2000 20.6 10.9 localhost Linux 2.6.21- 0.6100 0.2700 0.1700 20.0 9.8600
Basic uint64 operations - times in nanoseconds - smaller is better ------------------------------------------------------------------ Host OS int64 int64 int64 int64 int64 bit add mul div mod --------- ------------- ------ ------ ------ ------ ------ 192.168.0 Linux 2.6.16 23. 691.6 4295.6 3895.0 192.168.0 Linux 2.6.27 23. 685.4 4192.8 4074.3 192.168.0 Linux 2.6.16 23. 683.0 4199.0 4082.1 192.168.0 Linux 2.6.16 23. 680.7 4202.6 4082.9 192.168.0 Linux 2.6.16 23. 686.9 4235.7 4080.3 localhost Linux 2.6.21- 0.690 0.6200 34.5 41.4 localhost Linux 2.6.21- 0.660 0.6100 36.8 40.2
Basic float operations - times in nanoseconds - smaller is better ----------------------------------------------------------------- Host OS float float float float add mul div bogo --------- ------------- ------ ------ ------ ------ 192.168.0 Linux 2.6.16 6902.1 7781.9 12.1K 42.2K 192.168.0 Linux 2.6.27 6911.0 6568.4 11.6K 43.0K 192.168.0 Linux 2.6.16 6757.4 7578.5 11.9K 43.5K 192.168.0 Linux 2.6.16 6763.1 7611.3 11.7K 43.5K 192.168.0 Linux 2.6.16 6759.3 7640.4 11.9K 43.5K localhost Linux 2.6.21- 1.6600 2.7900 21.7 20.6 localhost Linux 2.6.21- 1.6300 2.7200 20.9 20.1
Basic double operations - times in nanoseconds - smaller is better ------------------------------------------------------------------ Host OS double double double double add mul div bogo --------- ------------- ------ ------ ------ ------ 192.168.0 Linux 2.6.16 9955.5 10.6K 22.8K 79.8K 192.168.0 Linux 2.6.27 9157.0 9909.4 20.6K 79.4K 192.168.0 Linux 2.6.16 9793.3 10.3K 22.4K 79.8K 192.168.0 Linux 2.6.16 9703.9 10.4K 22.2K 79.9K 192.168.0 Linux 2.6.16 9746.9 10.3K 22.3K 79.7K localhost Linux 2.6.21- 1.6900 2.7900 21.2 20.6 localhost Linux 2.6.21- 1.6300 2.8800 21.0 20.2
Context switching - times in microseconds - smaller is better ------------------------------------------------------------------------- Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw --------- ------------- ------ ------ ------ ------ ------ ------- ------- 192.168.0 Linux 2.6.16 164.8 120.0 311.9 165.3 162.5 165.9 151.1 192.168.0 Linux 2.6.27 247.5 196.1 198.4 238.0 254.9 262.9 291.2 192.168.0 Linux 2.6.16 164.4 118.5 115.2 161.1 156.4 164.4 164.3 192.168.0 Linux 2.6.16 167.2 116.6 119.6 166.9 161.9 171.3 158.1 192.168.0 Linux 2.6.16 172.5 117.4 114.3 161.3 147.6 163.8 127.5 localhost Linux 2.6.21- 11.0 11.6 11.7 15.3 19.2 16.8 25.1 localhost Linux 2.6.21- 10.2 11.4 11.3 14.3 20.9 17.4 26.0
*Local* Communication latencies in microseconds - smaller is better --------------------------------------------------------------------- Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP ctxsw UNIX UDP TCP conn --------- ------------- ----- ----- ---- ----- ----- ----- ----- ---- 192.168.0 Linux 2.6.16 164.8 482.3 925. 192.168.0 Linux 2.6.27 247.5 770.7 1069 192.168.0 Linux 2.6.16 164.4 477.4 917. 192.168.0 Linux 2.6.16 167.2 472.9 926. 192.168.0 Linux 2.6.16 172.5 474.9 913. localhost Linux 2.6.21- 11.0 28.3 50.8 45.9 55.2 48.2 59.8 126. localhost Linux 2.6.21- 10.2 32.1 55.7 36.7 49.2 40.2 53.1 113.
*Remote* Communication latencies in microseconds - smaller is better --------------------------------------------------------------------- Host OS UDP RPC/ TCP RPC/ TCP UDP TCP conn --------- ------------- ----- ----- ----- ----- ---- 192.168.0 Linux 2.6.16 192.168.0 Linux 2.6.27 192.168.0 Linux 2.6.16 192.168.0 Linux 2.6.16 192.168.0 Linux 2.6.16 localhost Linux 2.6.21- localhost Linux 2.6.21-
File & VM system latencies in microseconds - smaller is better ------------------------------------------------------------------------------- Host OS 0K File 10K File Mmap Prot Page 100fd Create Delete Create Delete Latency Fault Fault selct --------- ------------- ------ ------ ------ ------ ------- ----- ------- ----- 192.168.0 Linux 2.6.16 6410.3 6135.0 37.0K 6896.6 5112.0 3.124 36.8 280.8 192.168.0 Linux 2.6.27 18.9K 71.4K 55.6K 28.6K 16.2K 15.9 54.2 194.3 192.168.0 Linux 2.6.16 22.7K 15.4K 1000.K 47.6K 4926.0 5.213 37.1 284.2 192.168.0 Linux 2.6.16 31.2K 29.4K 41.7K 50.0K 4907.0 1.087 36.0 277.1 192.168.0 Linux 2.6.16 33.3K 25.0K 58.8K 9434.0 5108.0 9.428 37.1 285.6 localhost Linux 2.6.21- 112.0 12.4 88.5 130.8 7413.0 2.360 5.98870 4.635 localhost Linux 2.6.21- 36.1 19.0 181.2 138.4 9006.0 2.134 482.1 4.148
*Local* Communication bandwidths in MB/s - bigger is better ----------------------------------------------------------------------------- Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem UNIX reread reread (libc) (hand) read write --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- ----- 192.168.0 Linux 2.6.16 10.2 11.2 13.1 32.8 19.1 17.8 32.8 72.9 192.168.0 Linux 2.6.27 8.96 11.4 12.9 32.6 19.1 17.7 32.7 71.2 192.168.0 Linux 2.6.16 10.2 11.2 13.0 32.8 19.0 17.8 32.7 71.2 192.168.0 Linux 2.6.16 10.2 11.2 12.9 32.9 19.0 17.8 32.9 71.6 192.168.0 Linux 2.6.16 10.2 11.2 12.9 32.9 19.0 17.8 32.7 71.6 localhost Linux 2.6.21- 1153 436. 640. 1742.8 3463.7 1239.0 1116.5 3502 1589. localhost Linux 2.6.21- 1194 451. 744. 1742.3 3443.5 1217.8 1159.0 3357 1555.
Memory latencies in nanoseconds - smaller is better (WARNING - may not be correct, check graphs) ------------------------------------------------------------------------------ Host OS Mhz L1 $ L2 $ Main mem Rand mem Guesses --------- ------------- --- ---- ---- -------- -------- ------- 192.168.0 Linux 2.6.16 85 33.6 293.4 296.6 856.8 No L2 cache? 192.168.0 Linux 2.6.27 86 35.2 293.8 309.8 863.1 No L2 cache? 192.168.0 Linux 2.6.16 86 35.4 293.7 310.3 861.4 No L2 cache? 192.168.0 Linux 2.6.16 86 35.4 293.7 309.9 863.6 No L2 cache? 192.168.0 Linux 2.6.16 86 35.4 293.6 308.2 860.2 No L2 cache? localhost Linux 2.6.21- 1817 1.6620 7.9160 98.6 191.7 localhost Linux 2.6.21- 1864 1.7240 7.7130 104.3 205.4 make[1]: Leaving directory `/nfs/lmbench-3.0-a9/results'
主要技術引數說明:
分類
其中host為localhost 說明是我用的虛擬機器,而192.168.0則說明是用4020進行的測試
技術引數
引數說明
(1)Basic system parameters(系統基本引數)
Tlb pages:TLB(Translation Lookaside Buffer)的頁面數
Cache line bytes :(cache的行位元組數)
Mem par
memory hierarchy parallelism
Scal load:並行的lmbench數
(2)Processor, Processes(處理器、程序操作時間)
Null call:簡單系統呼叫(取程序號)
Null I/O:簡單IO操作(空讀寫的平均)
Stat:取文件狀態的操作
Open clos:開啟然後立即關閉關閉文件操作
Slct tcp
Select:配置
Sig inst:配置訊號
Sig hndl:捕獲處理訊號
Fork proc :Fork程序後直接退出
Exec proc:Fork後執行execve呼叫再退出
Sh proc:Fork後執行shell再退出
(3)Basic integer/float/double operations
略
(4)Context switching 上下文切換時間
2p/16K: 表示2個並行處理16K大小的資料
(5)*Local* Communication latencies(本地通訊延時,通過不同通訊方式傳送後自己立即讀)
Pipe:管道通訊
AF UNIX
Unix協議
UDP
UDP
RPC/UDP
TCP
RPC/TCP
TCP conn
TCP建立connect並關閉描述字
(6)File & VM system latencies(文件、記憶體延時)
File Create & Delete:建立並刪除文件
MMap Latency:記憶體對映
Prot Fault
Protect fault
Page Fault:缺頁
100fd selct:對100個文件描述符配置select的時間
(7)*Local* Communication bandwidths(本地通訊頻寬)
Pipe:管道操作
AF UNIX
Unix協議
TCP
TCP通訊
File reread:文件重複讀
MMap reread:記憶體對映重複讀
Bcopy(libc):記憶體拷貝
Bcopy(hand):記憶體拷貝
Mem read:記憶體讀
Mem write:記憶體寫
(8)Memory latencies(記憶體操作延時)
L1:快取1
L2:快取2
Main Mem:連續記憶體
Rand Mem:記憶體隨機訪問延時
Guesses
假如L1和L2近似,會顯示“No L1 cache?”
假如L2和Main Mem近似,會顯示“No L2 cache?”
相關推薦
linux 效能測試工具Lmbench 使用方法
一、引言 要評價一個系統的效能,通常有不同的指標,相應的會有不同的測試方法和測試工具,一般來說為了確保測試結果的公平和權威性,會選用比較成熟的商業測試軟體。但在特定情形下,只是想要簡單比較不同系統或比較一些函式庫效能時,也能夠從開源世界裡選用一些優秀的工具來完成這個任務,
Linux效能測試工具-UnixBench--安裝以及結果分析
UnixBench unixbench是一個用於測試unix系統性能的工具,也是一個比較通用的benchmark, 此測試的目的是對類Unix 系統提供一個基本的效能指示,很多測試用於系統性能的不同方面,這些測試的結果是一個指數值(index value,如520),這個值
Linux效能測試工具安裝全集
stress 下載地址:http://people.seas.harvard.edu/~apw/stress/ 一、stress工具安裝:1、獲取stress原始碼安裝包(stress-1.0.4.tar.gz)3、解壓並安裝 [[email protected] /]#cd /tmp/
Apache AB效能測試工具使用方法簡介
這篇文章主要介紹了Apache AB效能測試工具使用教程,本文重點講解測試結果中的一些引數,對引數的含義一一解釋,需要的朋友可以參考下 伺服器負載太大而影響程式效率是很常見的,Apache伺服器自帶有一個叫ab(ApacheBench)的工具,在bin目錄下。ab專門用於HTTP Serve
ceph--磁碟和rbd、rados效能測試工具和方法
我在物理機上建立了5臺虛擬機器,搭建了一個ceph叢集,結構如圖: 具體的安裝步驟參考文件:http://docs.ceph.org.cn/start/ http://www.centoscn.c
Linux VPS/伺服器效能測試工具之二
無論我們選擇國內、國外VPS、伺服器,我們都希望價效比高,都凸顯在哪些方面呢?價格成本、速度、穩定性,以及各種支援的功能。其中最為關鍵的我們在選擇便宜VPS主機的時候可能會用於國內的建站等專案,其實最為直接的測試速度就是我們架設網站之後看看實際的使用者開啟速度,這樣其實是最好
漫遊測試之效能測試(4.5.效能測試工具中的監控方法)
4.5.1Loadrunner的監控 Loadrunner 的windows監控,在開啟監控之前,需要在遠端機器中啟動以下2個服務。 並同時需要注意一下安全選項的設定。 在Loadrunner Controller中填入要監控的IP,選擇相對應的效能計算數器即可
Linux伺服器效能測試工具介紹
前言 作為伺服器開發人員,對效能應該非常的敏感,在伺服器設計和編碼時就應該充分考慮到效能問題,但如果寫出來的程式,或者已經存在的程式在執行中出現了效能問題,我們又如何下手去找出問題並解決呢?這不僅靠的是經驗,還需要藉助一些工具來輔助分析。 本文將以一個例項為樣本,介紹幾款
Linux虛擬機器上安裝效能測試工具OProfile
作者:鄒祁峰 郵箱:[email protected] 部落格
Linux下的效能測試工具 – sysbench
sysbench是一款開源的多執行緒效能測試工具,可以執行CPU/記憶體/執行緒/IO/資料庫等方面的效能測試。資料庫目前支援MySQL/Oracle/PostgreSQL。本文只是簡單演示一下幾種測試的用法,後續準備利用sysbench來對MySQL進行一系列的測試。具體
linux 磁碟效能測試工具fio
1,安裝 apt-get install fio dd if=/dev/zero of=2G.file bs=1G count=2 2,測試 fio -filename=/mnt/dmcache/chenming.log -direct=1
linux / unix 網路效能測試工具iperf詳細使用圖文教程
Iperf是一個網路效能測試工具。Iperf可以測試TCP和UDP頻寬質量。Iperf可以測量最大TCP頻寬,具有多種引數和UDP特性。Iperf可以報告頻寬,延遲抖動和資料包丟失。利用Iperf這一特性,可以用來測試一些網路裝置如路由器,防火牆,交換機等的效能。 Iperf有兩種版本,windows版和
Linux 下網路效能測試工具 iperf 的安裝和使用
好久沒寫文章,iperf 也一直有用,感覺不錯就記錄一下 說明: OS :CentOS 6.4 x86_64 Server: 192.168.100.55 Client: 192.168.100.6 簡介: Iperf是一個網路效能測試工具。可以測試TCP和UDP頻寬質量,
linux環境下 C++效能測試工具 gprof 和gprof2dot
1 簡介 改進應用程式的效能是一項非常耗時耗力的工作,但是究竟程式中是哪些函式消耗掉了大部分執行時間,這通常都不是非常明顯的。GNU 編譯器工具包所提供了一種剖析工具 GNU profiler(gprof)。gprof 可以為 Linux平臺上的程式精確分析效能瓶頸。gprof精確地給出函式被呼叫
Linux讀寫效能測試工具--iozone
IOzone是一個檔案系統測試基準工具。可以測試不同的作業系統中檔案系統的讀寫效能。可以通過 write, re-write, read, re-read, random read, random write, random mix, backwards read, rec
Linux 實時效能測試工具——Cyclictest 的使用與分析
Cyclictest is a high resolution test program, written by User:Tglx, maintained by Clark Williams and John Kacur Documentatio
簡談linux環境下網路效能測試工具iperf
通用引數 -f [kmKM] 分別表示以Kbits, Mbits, KBytes, MBytes顯示報告,預設以Mbits為單位,eg:iperf -c 222.35.11.23 -f K -i sec 以秒為單位顯示報告間隔,eg:iperf -c 222.35.11.23 -i 2 -l 緩衝區大小
嵌入式linux網路效能測試工具iperf
通常在某些應用中我們會乙太網作為高速傳輸媒介介面,在前期的驗證以及硬體完成以後都需要進行必要的效能測試。微控制器中由於RAM有限通常不會實現完整的TCP/IP協議棧,而採用諸如uIP/L
Apache ab測試工具使用方法(無參、get傳參、post傳參)(轉)
結果 文字 測試結果 方法 htm .html 但我 apache2.4 請求 轉自Apache ab測試工具使用方法(無參、get傳參、post傳參) Ab測試工具是apache自帶的測試工具,具有簡單易上手的特性,下面我總結一下我的使用方法,首先去官方下載apache程
google瀏覽器安裝接口測試工具postman方法
ext ref 擴展 bsp 位置 targe 字符串替換 好的 配置 Google安裝postman: 未配好的文件下載(可選下面配好的直接用):下載 配置方法: 一:需要修改postman安裝包中js/requester.js 和runner.js ,將其中的aicm