Lmbench是一套簡易,可移植的,符合ANSI/C標准為UNIX/POSIX而制定的微型測評工具。一般來說,它衡量兩個關鍵特征:反應時間和帶寬。Lmbench旨在使系統開發者深入了解關鍵操作的基礎成本。
軟件說明:
Lmbench是個多平台軟件,因此能夠對同級別的系統進行比較測試,反映不同系統的優劣勢,通過選擇不同的庫函數我們就能夠比較庫函數的性能;更為重要的是,作為一個開源軟件,lmbench提供一個測試框架,假如測試者對測試項目有更高的測試需要,能夠通過少量的修改源代碼達到目的(比如現在只能評測進程創建、終止的性能和進程轉換的開銷,通過修改部分代碼即可實現線程級別的性能測試)。
下載:
www.bitmover.com/lmbench,最新版本3.0-a9
LMbench的主要功能:
配置文件
[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?”