UnixBench是一款開源的測試 unix 系統(tǒng)基本性能的工具,是比較通用的測試VPS性能的工具. UnixBench會執(zhí)行一系列的測試,包括2D和3D圖形系統(tǒng)的性能衡量,測試的結果不僅僅只是CPU,內存,或者磁盤為基準,還取決于硬件,操作系統(tǒng)版本,編譯器.
最新版本UnixBench5.1.3,包含system和graphic測試,如果你需要測試graphic,則需要修改Makefile,不要注釋掉”GRAPHIC_TESTS = defined”,同時需要系統(tǒng)提供x11perf命令gl_glibs庫。
下面的腳本使用了最新版UnixBench5.1.3來測試,注釋了關于graphic的測試項(大多數(shù)VPS都是沒有顯卡或者是集顯,所以圖像性能無需測試),運行10-30分鐘后(根據(jù)CPU內核數(shù)量,運算時間不等)得出分數(shù),越高越好。
測試方法:
wget
chmod +x unixbench.sh
./unixbench.sh
或直接把下面代碼保存成unixbench.sh
#! /bin/bash
PATH=http://www.3lian.com/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#===============================================================================================
# Description: Unixbench for Test
#===============================================================================================
# Create new soft download dir
mkdir -p /opt/unixbench;
cd /opt/unixbench;
# Download UnixBench5.1.3
if [ -s UnixBench5.1.3.tgz ]; then
echo "UnixBench5.1.3.tgz [found]"
else
echo "UnixBench5.1.3.tgz not found!!!download now......"
if ! wget -c ;then
echo "Failed to download UnixBench5.1.3.tgz,please download it to "/opt/unixbench" directory manually and rerun the install script."
exit 1
fi
fi
tar -xzf UnixBench5.1.3.tgz;
cd UnixBench;
yum -y install gcc gcc-c autoconf gcc-c++ time perl-Time-HiRes
#Run unixbench
sed -i "s/GRAPHIC_TESTS = defined/#GRAPHIC_TESTS = defined/g" ./Makefile
make;
./Run;
echo '';
echo '';
echo '';
echo "======= Script description and score comparison completed! ======= ";
echo '';
echo '';
echo '';
測試項目:
Dhrystone 2 using register variables
此項用于測試 string handling,因為沒有浮點操作,所以深受軟件和硬件設計(hardware and software design)、編譯和鏈接(compiler and linker options)、代碼優(yōu)化(code optimazaton)、對內存的cache(cache memory)、等待狀態(tài)(wait states)、整數(shù)數(shù)據(jù)類型(integer data types)的影響。
Double-Precision Whetstone
這一項測試浮點數(shù)操作的速度和效率。這一測試包括幾個模塊,每個模塊都包括一組用于科學計算的操作。覆蓋面很廣的一系列 c 函數(shù):sin,cos,sqrt,exp,log 被用于整數(shù)和浮點數(shù)的數(shù)學運算、數(shù)組訪問、條件分支(conditional branch)和程序調用。此測試同時測試了整數(shù)和浮點數(shù)算術運算。
Execl Throughput
此測試考察每秒鐘可以執(zhí)行的 execl 系統(tǒng)調用的次數(shù)。 execl 系統(tǒng)調用是 exec 函數(shù)族的一員。它和其他一些與之相似的命令一樣是 execve() 函數(shù)的前端。
File copy
測試從一個文件向另外一個文件傳輸數(shù)據(jù)的速率。每次測試使用不同大小的緩沖區(qū)。這一針對文件 read、write、copy 操作的測試統(tǒng)計規(guī)定時間(默認是 10s)內的文件 read、write、copy 操作次數(shù)。
Pipe Throughput
管道(pipe)是進程間交流的最簡單方式,這里的 Pipe throughtput 指的是一秒鐘內一個進程可以向一個管道寫 512 字節(jié)數(shù)據(jù)然后再讀回的次數(shù)。需要注意的是,pipe throughtput 在實際編程中沒有對應的真實存在。
Pipe-based Context Switching
這個測試兩個進程(每秒鐘)通過一個管道交換一個不斷增長的整數(shù)的次數(shù)。這一點很向現(xiàn)實編程中的一些應用,這個測試程序首先創(chuàng)建一個子進程,再和這個子進程進行雙向的管道傳輸。
Process Creation
測試每秒鐘一個進程可以創(chuàng)建子進程然后收回子進程的次數(shù)(子進程一定立即退出)。process creation 的關注點是新進程進程控制塊(process control block)的創(chuàng)建和內存分配,即一針見血地關注內存帶寬。一般說來,這個測試被用于對操作系統(tǒng)進程創(chuàng)建這一系統(tǒng)調用的不同實現(xiàn)的比較。
System Call Overhead
測試進入和離開操作系統(tǒng)內核的代價,即一次系統(tǒng)調用的代價。它利用一個反復地調用 getpid 函數(shù)的小程序達到此目的。