linux系统服务器性能综合测试(UnixBench5)
生活随笔
收集整理的這篇文章主要介紹了
linux系统服务器性能综合测试(UnixBench5)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ?使用 UnixBench5 進行linux系統服務器性能綜合測試
1.簡介 Unixbench是一個類unix系(Unix,BSD,Linux)統下的性能測試工具,一個開源工具,被廣泛用與測試linux系統主機的性能,簡稱UB。Unixbench的主要測試項目有:系統調用、讀寫、進程、圖形化測試、2D、3D、管道、運算、C庫等系統基準性能提供測試數據。 測試項目: Dhrystone 這個基準測試使用來計算和比較計算機性能的。由于沒有浮點操作,這個測試主要集中在字符串處理上。這個測試深受以下因素的影響:硬件和軟件設計,編譯程序和鏈接程序選項,代碼優化 ,高速緩沖存儲器, 等待狀態和整數數據類型。 Whetstone 這個測試測量浮點運算速度和效率。這個測試包含幾個模塊,這些模塊被認為是由在典型運用在科學應用中的操作組成的混合體。 各種各樣的C函數,包括sin、cos、sqrt、exp和log還有×××,浮點算術操作、數組訪問、條件轉移和過程調用,都使用了。 整數和浮點算術,在這個測試中都會計算。 Execl Throughput 這個測試計算每秒鐘出現的execl調用數。Execl是 exec 函數家族的一部分。它用一個新的進程映像更新當前的進程映像。 它和許多其他相似的命令都是execve()的前端程序。 File Copy 這個測試測量使用不同的緩沖區大小時,數據可以從一個文件被傳輸到另一個的速率。文件的讀寫復制測試可以獲得在指定時間內(默認為10秒)能夠讀、寫、復制的字符數目。 Pipe Throughput 管道是進程間通信最簡單的方式之一。管道吞吐量指的是每秒中,一個進程能將512個字節數據寫入管道和從管道中回讀它們的次數。這個測試在真實的程序設計中并沒有對應物。 Pipe-based Context Switching 這個測試是計算兩個進程通過管道交換一個增長的整數的次數。基于管道的上下文切換測試更像一個真實的應用程序。這個測試產生一個可以用來繼續雙向管對話的子進程。 Process Creation 這個測試計算一個進程派生和收獲一個馬上退出的子進程的次數。由于進程創建涉及創建進程控制塊和為新的進程分配內存,因此這項測試直接取決于內存帶寬。這個測試一般地會用于比較各種各樣的操作系統進程創建調用的執行。 Shell Scripts 這個shells scripts測試測量每秒進程能夠啟動和收獲一組1,2,4,8個shell腳本程序的并行的拷貝的次數。The shells scripts test measures the number of times per minute a process can start and reap a set of one, two, four and eight concurrent copies of a shell scripts where the shell script. applies a series of transformation to a data file. System Call Overhead 這個測試是估計進入和離開操作系統內核的開銷。例如執行一個系統調用的開銷。它由一個簡單的系統組成,這個系統重復的調用getid系統調用,getid返回調用進程的進程IS號。這個測試是用執行這些調用的時間來估算進入和離開內核的開銷。 Graphical Tests 這個測試提供了2D,3D的圖形化測試。報告性能不僅依賴于硬件,還與你的系統是否對硬件有合適的驅動程序有關 。 2.軟件包下載安裝 # Create new soft download dir? mkdir -p /workspace ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? cd /workspace # Download unixbench ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? wget http://www.ctohome.com/linux-vps-pack/unixbench-5.1.2.tar.gz ? ? ? ? ? tar xzf unixbench-5.1.2.tar.gz ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cd unixbench-5.1.2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? yum -y install gcc gcc-c autoconf gcc-c++ time ?perl-Time-HiRes -y ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #Run unixbench ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? sed -i "s/GRAPHIC_TESTS = defined/#GRAPHIC_TESTS = defined/g" ./Makefile ? ?? make ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./Run ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? wget http://www.CTOHome.com/linux-vps-pack/unixbench.sh;sh ./unixbench.sh; Unixbench的官方網址:http://code.google.com/p/byte-unixbench/ Unixbench下載地址:http://code.google.com/p/byte-unixbench/downloads/list 3.快速使用 執行system測試方法:Run 執行graphic測試方法:Run graphics 執行system,graphics測試方法:Run gindex 4。詳細使用方法 4.1.Run用法 Run [ -q | -v ] [-i <n> ] [-c <n> [-c <n> ...]] [test ...] 選項說明: -q? 不顯示測試過程 -v 顯示測試過程 -i <count> 執行次數,最低3次,默認10 -c <n> 每次測試并行n個copies(并行任務) 備注:-c選項可以用來執行多次,如: Run -c 1 -c 4表示執行兩次,第一次單個copies,第二次4個copies的測試任務。 4.2. 測試說明 對于多cpu系統的性能測試策略,需要統計單任務,多任務及其并行的性能增強。 以4個cpu的PC為例,需要測試兩次,4個CPU就是要并行執行4個copies, Run -q -c 1 -c 4 5.測試內容解釋 Double-precision Whetstone 5.1. *********************** Dhrystone 2 using register variables ?1 2 3 4 5 6 7 8 9 10 此項產生于 1984,測試 string handling,因為沒有浮點操作,所以深受軟件和硬件設計(hardware and software design)、編譯和鏈接(compiler and linker options)、代碼優化(code optimazaton)、對內存的cache(cache memory)、等待狀態(?wait states)、整數數據類型(integer data types)的影響 5.2. ******************** Double-Precision Whetstone ?1 2 3 4 5 6 7 8 9 10 這一項測試浮點數操作的速度和效率。這一測試包括幾個模塊,每個模塊都包括一組用于科學計算的操作。覆蓋面很廣的一系列 c 函數:sin,cos,sqrt,exp,log 被用于整數和浮點數的數學運算、數組訪問、條件分支(conditional branch)和程序調用。此測試同時測試了整數和浮點數算術運算。 5.3. ************** System Call Overhead ?1 2 3 4 5 6 7 8 9 10 測試進入和離開操作系統內核的代價,即一次系統調用的代價。它利用一個反復地調用 getpid 函數的小程序達到此目的。 5.4. *************** Pipe Throughput ?1 2 3 4 5 6 7 8 9 10 管道(pipe)是進程間交流的最簡單方式,這里的 Pipe throughtput 指的是一秒鐘內一個進程可以向一個管道寫 512 字節數據然后再讀回的次數。需要注意的是,pipe throughtput 在實際編程中沒有對應的真實存在。 5.5. ************* Pipe-based Context Switching ?1 2 3 4 5 6 7 8 9 10 這個測試兩個進程(每秒鐘)通過一個管道交換一個不斷增長的整數的次數。這一點很向現實編程中的一些應用,這個測試程序首先創建一個子進程,再和這個子進程進行雙向的管道傳輸。 5.6. ************ Process Creation ?1 2 3 測試每秒鐘一個進程可以創建子進程然后收回子進程的次數(子進程一定立即退出)。process creation 的關注點是新進程進程控制塊(process control block)的創建和內存分配,即一針見血地關注內存帶寬。一般說來,這個測試被用于對操作系統進程創建這一系統調用的不同實現的比較。 5.7. *********** Execl Throughput ?1 2 3 此測試考察每秒鐘可以執行的 execl 系統調用的次數。 execl 系統調用是 exec 函數族的一員。它和其他一些與之相似的命令一樣是 execve() 函數的前端。 5.8. ***********? File copy 測試從一個文件向另外一個文件傳輸數據的速率。每次測試使用不同大小的緩沖區。這一針對文件 read、write、copy 操作的測試統計規定時間(默認是 10s)內的文件 read、write、copy 操作次數。 Filesystem Throughput 1024 bufsize 2000 maxblocks ?1 2 3 Filesystem Throughput 256 bufsize 500 maxblocks ?1 2 3 Filesystem Throughput 4096 bufsize 8000 maxblocks ?1 2 3 5.9. ********** Shell Scripts 測試一秒鐘內一個進程可以并發地開始一個 shell 腳本的 n 個拷貝的次數,n 一般取值 1,2,4,8.(我的系統上取 1, 8, 16)。這個腳本對一個數據文件進行一系列的變形操作(?transformation)。 6.測試結果分析 VPS服務器:低于400的就算性能低下;600-800是屬于正常水準;超過1000分性能就算給力。 實體服務器服務器配置對測試得分影響較大,我測試了一臺 IBM 的雙核+8G 內存服務器,測試得分2685。 # 安裝測試工具unixbench時,系統報錯如下所示: Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at ./Run line 6. BEGIN failed--compilation aborted at ./Run line 6. # 解決方案: 錯誤提示Can't locate,猜測可能是HiRes.pm沒有安裝,或者是路徑配置問題 locate HiRes.pm ?# 發現沒有,確定應該是沒有安裝 網上查找答案: .pm實際上是Perl的包,只需安裝如下軟件包即可: yum install perl-Time-HiRes 7.磁盤IO,網絡性能測試方法簡介 7.1.硬盤IO性能測試 測試硬盤IO性能,對硬盤的損害很大,不建議多次或長時間嘗試,命令如下: dd if=/dev/zero of=test bs=64k count=4k oflag=dsync 測試結果,如果超過10M,對正常建站就無影響。超過50M,就是非常給力狀態。 7.3.網絡性能測試 VPS的網絡性能,主要分出口和入口二個指標,入口可以用wget文件得到: wget http://cachefly.cachefly.net/100mb.test 看下載速度,如果是11M/s,大概就是百兆口。70M/S,大概就是G口。您的VPS搭建好網站環境后,可以用其它的VPS去拽這個文件,得到出口的帶寬。 7.3.VPS的訪問速度測試 這個主要測試是PING值,和觀看TRACERT值,來判斷速度。大概這幾個網站: 站長站:ping.chinaz.com – ping.chinaz.com/tracert 卡卡網:www.webkaka.com/ping.aspx – www.webkaka.com/Tracert.aspx 國外的:www.just-ping.com 軟件:speedtest.net/mini.php轉載于:https://blog.51cto.com/michaelkang/1193987
總結
以上是生活随笔為你收集整理的linux系统服务器性能综合测试(UnixBench5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 位置子段最大子段和 hdu 1003 m
- 下一篇: 虚拟化概述及VMware VSphere