共計(jì) 1734 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
unixbench 是一款開源的測(cè)試 unix 系統(tǒng)基本性能的工具, 是比較通用的測(cè)試 VPS 性能的工具。UnixBench 是一個(gè)類 Unix 系統(tǒng) (Unix,BSD,Linux) 下的開源性能測(cè)試工具,被廣泛用與測(cè)試 Linux 系統(tǒng)主機(jī)的性能。Unixbench 的主要測(cè)試項(xiàng)目有:系統(tǒng)調(diào)用、讀寫、進(jìn)程、圖形化測(cè)試、2D、3D、管道、運(yùn)算、C 庫(kù)等系統(tǒng)基準(zhǔn)性能提供測(cè)試數(shù)據(jù)。UnixBench 一鍵執(zhí)行腳本 , 腳本會(huì)自動(dòng)下載 unixbench 最新版本, 并自動(dòng)運(yùn)行. 根據(jù)機(jī)器性能, 測(cè)試執(zhí)行完大約需要 10-30 分鐘.
本文記錄一下 Linux VPS/ 服務(wù)器上面使用 UnixBench 腳本進(jìn)行跑分的方法。
一、unixbench 測(cè)試方法
下面是 UnixBench 測(cè)試方法(來(lái)源)。
wget –no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
chmod +x unixbench.sh
./unixbench.sh
登錄 VPS 之后,輸入上面的腳本回車即可開始測(cè)試。
二、UnixBench 測(cè)試項(xiàng)目
UnixBench 主要測(cè)試以下幾個(gè)方面內(nèi)容:
Dhrystone 2 using register variables
此項(xiàng)用于測(cè)試 string handling,因?yàn)闆](méi)有浮點(diǎn)操作,所以深受軟件和硬件設(shè)計(jì) (hardware and software design)、編譯和鏈接(compiler and linker options)、代碼優(yōu)化(code optimazaton)、對(duì)內(nèi)存的 cache(cache memory)、等待狀態(tài)(wait states)、整數(shù)數(shù)據(jù)類型(integer data types) 的影響。
Double-Precision Whetstone
這一項(xiàng)測(cè)試浮點(diǎn)數(shù)操作的速度和效率。這一測(cè)試包括幾個(gè)模塊,每個(gè)模塊都包括一組用于科學(xué)計(jì)算的操作。覆蓋面很廣的一系列 c 函數(shù):sin,cos,sqrt,exp,log 被用于整數(shù)和浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算、數(shù)組訪問(wèn)、條件分支 (conditional branch) 和程序調(diào)用。此測(cè)試同時(shí)測(cè)試了整數(shù)和浮點(diǎn)數(shù)算術(shù)運(yùn)算。
Execl Throughput
此測(cè)試考察每秒鐘可以執(zhí)行的 execl 系統(tǒng)調(diào)用的次數(shù)。execl 系統(tǒng)調(diào)用是 exec 函數(shù)族的一員。它和其他一些與之相似的命令一樣是 execve() 函數(shù)的前端。
File copy
測(cè)試從一個(gè)文件向另外一個(gè)文件傳輸數(shù)據(jù)的速率。每次測(cè)試使用不同大小的緩沖區(qū)。這一針對(duì)文件 read、write、copy 操作的測(cè)試統(tǒng)計(jì)規(guī)定時(shí)間 (默認(rèn)是 10s) 內(nèi)的文件 read、write、copy 操作次數(shù)。
Pipe Throughput
管道 (pipe) 是進(jìn)程間交流的最簡(jiǎn)單方式,這里的 Pipe throughtput 指的是一秒鐘內(nèi)一個(gè)進(jìn)程可以向一個(gè)管道寫 512 字節(jié)數(shù)據(jù)然后再讀回的次數(shù)。需要注意的是,pipe throughtput 在實(shí)際編程中沒(méi)有對(duì)應(yīng)的真實(shí)存在。
Pipe-based Context Switching
這個(gè)測(cè)試兩個(gè)進(jìn)程 (每秒鐘) 通過(guò)一個(gè)管道交換一個(gè)不斷增長(zhǎng)的整數(shù)的次數(shù)。這一點(diǎn)很向現(xiàn)實(shí)編程中的一些應(yīng)用,這個(gè)測(cè)試程序首先創(chuàng)建一個(gè)子進(jìn)程,再和這個(gè)子進(jìn)程進(jìn)行雙向的管道傳輸。
Process Creation
測(cè)試每秒鐘一個(gè)進(jìn)程可以創(chuàng)建子進(jìn)程然后收回子進(jìn)程的次數(shù) (子進(jìn)程一定立即退出)。process creation 的關(guān)注點(diǎn)是新進(jìn)程進(jìn)程控制塊(process control block) 的創(chuàng)建和內(nèi)存分配,即一針見血地關(guān)注內(nèi)存帶寬。一般說(shuō)來(lái),這個(gè)測(cè)試被用于對(duì)操作系統(tǒng)進(jìn)程創(chuàng)建這一系統(tǒng)調(diào)用的不同實(shí)現(xiàn)的比較。
System Call Overhead
測(cè)試進(jìn)入和離開操作系統(tǒng)內(nèi)核的代價(jià),即一次系統(tǒng)調(diào)用的代價(jià)。它利用一個(gè)反復(fù)地調(diào)用 getpid 函數(shù)的小程序達(dá)到此目的。
Shell Scripts
測(cè)試一秒鐘內(nèi)一個(gè)進(jìn)程可以并發(fā)地開始一個(gè) shell 腳本的 n 個(gè)拷貝的次數(shù),n 一般取值 1,2,4,8。(我在測(cè)試時(shí)取 1,8)。這個(gè)腳本對(duì)一個(gè)數(shù)據(jù)文件進(jìn)行一系列的變形操作(transformation)。
三、unixbench 測(cè)試結(jié)果
下面是測(cè)試結(jié)果,測(cè)試所需時(shí)間根據(jù) VPS 或者服務(wù)器的性能來(lái)定,一般都需要幾十分鐘甚至幾小時(shí)。