linux 性能測試工具Lmbench


Lmbench是一套簡易,可移植的,符合ANSI/C標准為UNIX/POSIX而制定的微型測評工具。一般來說,它衡量兩個關鍵特征:反應時間和帶寬。Lmbench旨在使系統開發者深入了解關鍵操作的基礎成本。

軟件說明:

lmbench是個用於評價系統綜合性能的多平台開源benchmark,能夠測試包括文檔讀寫、內存操作、進程創建銷毀開銷、網絡等性能,測試方法簡單。
Lmbench是個多平台軟件,因此能夠對同級別的系統進行比較測試,反映不同系統的優劣勢,通過選擇不同的庫函數我們就能夠比較庫函數的性能;更為重要的是,作為一個開源軟件,lmbench提供一個測試框架,假如測試者對測試項目有更高的測試需要,能夠通過少量的修改源代碼達到目的(比如現在只能評測進程創建、終止的性能和進程轉換的開銷,通過修改部分代碼即可實現線程級別的性能測試)。
下載:
www.bitmover.com/lmbench,最新版本3.0-a9

LMbench的主要功能:
*帶寬測評工具
         —讀取緩存文件
          —拷貝內存
          —讀內存
          —寫內存
          —管道
          —TCP
    * 反應時間測評工具
          —上下文切換
          —網絡: 連接的建立,管道,TCP,UDP和RPC hot potato
          —文件系統的建立和刪除
          —進程創建
          —信號處理
          —上層的系統調用
          —內存讀入反應時間
    * 其他
          —處理器時鍾比率計算
 
LMbench的主要特性:
—對於操作系統的可移植性測試
評測工具是由C語言編寫的,具有較好的可移植性(盡管它們更易於被GCC編譯)。這對於產生系統間逐一明細的對比結果是有用的。
 
—自適應調整
Lmbench對於應激性行為是非常有用的。當遇到BloatOS比所有競爭者慢4倍的情況時,這個工具會將資源進行分配來修正這個問題。
 
— 數據庫計算結果
  數據庫的計算結果包括了從大多數主流的計算機工作站制造商上的運行結果。
 
—存儲器延遲計算結果
   存儲器延遲測試展示了所有系統(數據)的緩存延遲,例如一級,二級和三級緩存,還有內存和TLB表的未命中延遲。另外,緩存的大小可以被正確划分成一些結果集並被讀出。硬件族與上面的描述相象。這種測評工具已經找到了操作系統分頁策略的中的一些錯誤。
 
—上下文轉換計算結果
   很多人好象喜歡上下文轉換的數量。這種測評工具並不是特別注重僅僅引用“在緩存中”的數量。它時常在進程數量和大小間進行變化,並且在當前內容不在緩存中的時候,將結果以一種對用戶可見的方式進行划分。您也可以得到冷緩存上下文切換的實際開銷。

配置文件

[root@jiangyi01.sqa.zmf /tmp/lmbench3/lmbench3]
#ll bin/x86_64-linux-gnu/*`hostname`
-rw-r--r-- 1 root root 719 Mar 8 17:18 bin/x86_64-linux-gnu/CONFIG.jiangyi01.sqa.zmf -rwxr-xr-x 1 root root 1232 Mar 7 20:52 bin/x86_64-linux-gnu/INFO.jiangyi01.sqa.zmf

生成配置文件腳本

[root@jiangyi01.sqa.zmf /tmp/lmbench3/lmbench3]
#ll scripts/config-run -r-xr-xr-x 1 14557 501 21018 Mar 8 17:18 scripts/config-run 

生成配置文件腳本

make results 命令實際上是調用了 scripts/config-run

[root@jiangyi01.sqa.zmf /tmp/lmbench3/lmbench3]
#make results


參數說明

我這里對每個測試結果參數的說明不全,更加全面的請看REF鏈接

(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?”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM