unixbench是什麼?
unixbench是一套unix系統基准測試套件。unixbench的設計目標是為類unix系統提供一套基本的指標,所以有許多項目測試系統各方面的性能。各項的測試有得分,然後有一個綜合的得分,這樣可以很方便的通過分數去比較。
unixbench也包含一些非常簡單的2D和3D圖形測試。
unixbench也支持多CPU系統的測試,默認的行為是測試兩次,第一次是一個進程的測試,第二次是N份測試,N等於CPU個數。這樣的設計是為了以下目標:
測試系統的單任務性能
測試系統的多任務性能
測試系統並行處理的能力
unixbench一個基於系統的基准測試工具,不單純是CPU 內存 或者磁盤測試工具。測試結果不僅僅取決於硬件,也取決於系統、開發庫、甚至是編譯器。
測試項目
Dhrystone測試
測試聚焦在字符串處理,沒有浮點運算操作。這個測試用於測試鏈接器編譯、代碼優化、內存緩存、等待狀態、整數數據類型等,硬件和軟件設計都會非常大的影響測試結果。
Whetstone 測試
這項測試項目用於測試浮點運算效率和速度。這項測試項目包含若干個科學計算的典型性能模塊,包含大量的C語言函數,sin cos sqrt exp和日志以及使用整數和浮點的數學操作。包含數組訪問、條件分支和過程調用。
Execl Throughput(execl 吞吐,這裡的execl是類unix系統非常重要的函數,非辦公軟件的execl)測試
這項測試測試每秒execl函數調用次數。execl是 exec函數家族的一部分,使用新的圖形處理代替當前的圖形處理。有許多命令和前端的execve()函數命令非常相似。
File Copy測試
這項測試衡量文件數據從一個文件被傳輸到另外一個,使用大量的緩存。包括文件的讀、寫、復制測試,測試指標是一定時間內(默認是10秒)被重寫、讀、復制的字符數量。
Pipe Throughput(管道吞吐)測試
pipe是簡單的進程之間的通訊。管道吞吐測試是測試在一秒鐘一個進程寫512比特到一個管道中並且讀回來的次
數。管道吞吐測試和實際編程有差距。
Pipe-based Context Switching (基於管道的上下文交互)測試
這項測試衡量兩個進程通過管道交換和整數倍的增加吞吐的次數。基於管道的上下文切換和真實程序很類似。測試程序產生一個雙向管道通訊的子線程。
Process Creation(進程創建)測試
這項測試衡量一個進程能產生子線程並且立即退出的次數。新進程真的創建進程阻塞和內存占用,所以測試程序直接使用內存帶寬。這項測試用於典型的比較大量的操作系統進程創建操作。
Shell Scripts測試
shell腳本測試用於衡量在一分鐘內,一個進程可以啟動並停止shell腳本的次數,通常會測試1,2, 3, 4, 8 個shell腳本的共同拷貝,shell腳本是一套轉化數據文件的腳本。
System Call Overhead (系統調用消耗)測試
這項測試衡量進入和離開系統內核的消耗,例如,系統調用的消耗。程序簡單重復的執行getpid調用(返回調用的進程id)。消耗的指標是調用進入和離開內核的執行時間。
Graphical Tests(圖形)測試
由"ubgears"程序組成,測試非常粗的2D和3D圖形性能,尤其是3D測試非常有限。測試結果和硬件,系統合適的驅動關系很大。
unixbench安裝
代碼如下:
wget http://byte-unixbench.googlecode.com/files/unixbench-5.1.2.tar.gz
tar xvfz unixbench-5.1.2.tar.gz
cd unixbench-5.1.2
如果不需要測試圖形,注釋掉Makefile文件的這一行
代碼如下:
#GRAPHIC_TESTS = defined
運行
代碼如下:
./Run
測試結果
代碼如下:
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 5.1.2 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
December 22, 2007 johantheghost at yahoo period com
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
1 x Execl Throughput 1 2 3
1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3
1 x File Copy 256 bufsize 500 maxblocks 1 2 3
1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3
1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10
1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10
1 x Process Creation 1 2 3
1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10
1 x Shell Scripts (1 concurrent) 1 2 3
1 x Shell Scripts (8 concurrent) 1 2 3
========================================================================
BYTE UNIX Benchmarks (Version 5.1.2)
System: localhost.localdomain: GNU/Linux
OS: GNU/Linux -- 3.10.0-123.8.1.el7.x86_64 -- #1 SMP Mon Sep 22 19:06:58 UTC 2014
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Xeon(R) CPU X5650 @ 2.67GHz (5331.8 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
08:24:54 up 1 day, 2:11, 1 user, load average: 0.00, 0.01, 0.05; runlevel 3
------------------------------------------------------------------------
Benchmark Run: Wed Nov 12 2014 08:24:54 - 08:52:53
1 CPU in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 28890881.0 lps (10.0 s, 7 samples)
Double-Precision Whetstone 3880.4 MWIPS (9.0 s, 7 samples)
Execl Throughput 4146.3 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 1051084.3 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 286552.2 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 2142638.4 KBps (30.0 s, 2 samples)
Pipe Throughput 1726807.0 lps (10.0 s, 7 samples)
Pipe-based Context Switching 322865.5 lps (10.0 s, 7 samples)
Process Creation 13662.4 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 5955.4 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 713.1 lpm (60.0 s, 2 samples)
System Call Overhead 2138318.1 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 28890881.0 2475.7
Double-Precision Whetstone 55.0 3880.4 705.5
Execl Throughput 43.0 4146.3 964.2
File Copy 1024 bufsize 2000 maxblocks 3960.0 1051084.3 2654.3
File Copy 256 bufsize 500 maxblocks 1655.0 286552.2 1731.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 2142638.4 3694.2
Pipe Throughput 12440.0 1726807.0 1388.1
Pipe-based Context Switching 4000.0 322865.5 807.2
Process Creation 126.0 13662.4 1084.3
Shell Scripts (1 concurrent) 42.4 5955.4 1404.6
Shell Scripts (8 concurrent) 6.0 713.1 1188.4
System Call Overhead 15000.0 2138318.1 1425.5
========
System Benchmarks Index Score 1444.7