1. 程式人生 > >十二款用於自主雲評測的開源工具

十二款用於自主雲評測的開源工具

 

馬上年底了,各種雲評測陸續放了出來,最近看到有一些評測也引起了爭議,第三方評測資料可以作為參考,真正要使用雲,將業務放到雲上,還是要自己來做一些評測,一方面自己跑的資料可信,一方面自己最瞭解業務需求,知道測試的時候應該重點關注那些指標。

 

雲評測的三個階段

雲在使用之前應該經過三個評測階段,效能評測、網路質量評測、業務評測。

1.效能測試

效能評測主要關注雲服務的效能,比如雲主機的CPU、磁碟、網路效能,RDS、負載均衡、S3等服務的效能。客觀的說,因為每一個朵雲可用區域上線的時間不一樣,搭建雲的物理機配置可能也會不同,所以效能多少都會有差異。另外,因為雲廠商的能力不同,有的雲廠商軟體版本也會不一致,造成效能也會有差異。儘管雲廠商在上線之前都會做嚴格的效能測試,但是雲廠商一般是基準測試,並且不會公佈詳細的資料,所以作為雲的使用者應該通過自己評測,做到心中有數。

2.網路質量評測

雲的一個特性就是基於網路,所以放到雲上的業務大多也都是基於網路的,所以對雲的網路質量評測很重要。另外要注意,網路質量是動態變化的,所以對雲的網路質量評測在使用之前要評測,在使用過程中也要長期持續的監控。

3.業務評測

業務上線之前,應儘可能全面的對雲系統是否能滿足業務進行評測,儘可能的模擬各種業務場景,確保在各種極端情況下,雲系統能滿足業務的需求。一般在流程比較完善的組織內部,都會有嚴格的業務測試流程,但是要注意如果之前的流程是在非雲環境,要結合雲環境進行相應的調整。

雲評測都可以使用那些工具

雲評測可以使用的工具很多,因為在雲上一般使用Linux居多,本文介紹的工具側重Linux系統,並且以開源工具為主。

1.Super Pi

網址:http://www.superpi.net/

Super Pi是一個單執行緒基準測試,可以計算特定位數的Pi。使用Gauss-Legendre演算法,是測試純單執行緒x86浮點效能的理想選擇。

Super Pi是免費軟體,可以隨意下載分發,在Super PI網站上提供常見硬體的Pi計數得分,方便對比。

十二款用於自主雲評測的開源工具

圖1:Super Pi網站上的常見硬體Pi計數得分

注意Super Pi是單執行緒的,不能用於多執行緒的CPU測試,通常用於粗略比較CPU計算能力,CPU測試衡量指標比較多,建議CPU測試側重基於業務壓力的測試。

2.FIO

原始碼網址:https://github.com/axboe/fio

二進位制下載網址:http://freshmeat.sourceforge.net/projects/fio

FIO作者是Jens Axboe,是一款I/O測試工具,用於基準測試和壓力/硬體驗證。支援19種不同型別的I/O引擎(sync,mmap,libaio,posixaio,SG v3,splice,null,network,syslet,guasi,solarisaio等),支援多執行緒作業,可以在塊裝置和檔案上工作,FIO是測試IOPS的利器,同時支援Windows系統和Linux系統。

十二款用於自主雲評測的開源工具

圖2:reshmeat.sourceforge.net網站上的FIO截圖

3.IOzone

網址:http://iozone.org/

IOzone是一個檔案系統基準測試工具,支援測試各種檔案系統。IOzone支援多執行緒,支援同步或非同步I/O讀寫模式,IOzone還有一個特點是支援測試結果生成圖片,方便直觀的看到結果。

十二款用於自主雲評測的開源工具

圖3:IOzone網站上IOzone自動生成的圖片

4.dd命令

dd是系統自帶命令,不用特別安裝,使用dd命令可以快速判斷磁碟io效能。如果源是磁碟,目標是/dev/null,可以初步判斷磁碟讀效能;如果源是/dev/zero,目標是磁碟,可以初步判斷磁碟寫效能。dd缺點是隻能測試順序讀寫,不能測試隨機讀寫效能。

5.iometer

網址:http://www.iometer.org

Iometer常用於磁碟I/O測試,是用於單個和集群系統的I/O子系統測測試工具。最初由英特爾公司開發,並將其交給開源開發實驗室(OSDL)。

十二款用於自主雲評測的開源工具

圖4:Iometer網站上的截圖

Iometer 包含了兩個程式,Iometer 和 Dynamo。Iometer 是控制程式,可以設定操作引數,啟動和停止測試。Dynamo 是負載生成器。Iometer支援Windows系統和Linux系統I/O測試。

6.iPerf/iPerf3

網址:https://iperf.fr/

iPerf 是一個網路效能測試工具,可以測試TCP和UDP頻寬質量,具有多種引數和UDP特性。iPerf可以報告頻寬,延遲抖動和資料包丟失。

iPerf支援常見的作業系統。

十二款用於自主雲評測的開源工具

圖5:iPerf支援的系統

7.Netperf

網址:https://hewlettpackard.github.io/netperf/

Netperf最初是由惠普開發的,用於衡量許多不同型別網路的效能。提供單向吞吐量和端到端延遲的測試。Netperf基於C/S模式的,伺服器端是netserver,用來偵聽來自客戶端的連線,客戶端是netperf。在伺服器端和客戶端之間,建立控制連線,傳遞測試配置的資訊,以及測試的結果。Netperf提供了許多預定義的測試,例如 測量批量(單向)資料傳輸或請求響應效能。Netperf根據應用的不同,可以進行不同模式的網路效能測試,

8.ping、traceroute、mtr

ping、traceroute、mtr是系統自帶命令,可用於測試網路質量,特別是mtr命令可以連續測試。

十二款用於自主雲評測的開源工具

圖6:mtr執行截圖

但是命令列不能或者不方便長期進行網路質量測試。

9.smokeping

網址:https://oss.oetiker.ch/smokeping

十二款用於自主雲評測的開源工具

圖7:oss.oetiker.chr網站上smokeing的截圖

SmokePing由Perl編寫的免費和開源軟體,由MRTG和RRDtool的建立者Tobi Oetiker編寫,能視覺化的長期跟蹤網路質量,使用瀏覽器互動式圖形展現,支援分散式部署,可以配置報警,並且支援外掛。

10.ApacheBench

ApacheBench(ab)是一個單執行緒命令列計算機程式,用於測量HTTP Web伺服器的效能。最初設計用於測試Apache HTTP Server,通用於測試任何Web伺服器。

ApacheBench與標準Apache原始碼分發捆綁在一起,與Apache Web伺服器本身一樣,是免費的開源軟體,並根據Apache許可證的條款進行分發。

11.SysBench

sysbench是一個基於LuaJIT的可編寫指令碼的多執行緒基準測試工具。 它最常用於資料庫基準測試,但也可用於建立不涉及資料庫伺服器的任意複雜工作負載。

sysbench特性如下:

  • 支援系統基準測試;
  • 統計有關速率和延遲的廣泛資料,包括百分比和直方圖;
  • 通過在使用者提供的Lua指令碼中實現預定義的鉤子,可以輕鬆建立新的基準測試;
  • 支援POSIX執行緒效能測試;
  • 支援資料庫OLTP基準測試;
  • 能夠每秒生成和跟蹤數億個事件。

12.Zabbix

十二款用於自主雲評測的開源工具

圖8:zabbix網站上Zabbix執行截圖

Zabbix是目前流行的開源監控工具,支援常見作業系統,支援網路裝置,配置靈活,支援自定義指標的監控,支援多種報警方式。

Zabbix很適合長期對雲的效能監控,也可以和效能測試工具聯動,視覺化的展現測試結果。

自主雲評測是必須掌握的技能

測試之前,首先需要理解被測試的指標,開源工具的使用一般都有些門檻,需要多研究和實戰。上面介紹的開源工具基本都支援命令列,可以寫成指令碼,方便日常使用,也可以結合自己的運維場景,儘量將常用場景的測試自動化。

由於雲環境複雜,並且可能每個業務場景對雲的要求也不一樣,使用雲之前需要對雲進行從效能到網路、再到業務的全面評測,做到心中有底,才能避免業務發生問題。隨著業務壓力增加,由於有詳細的資料,也能做到心中有數,讓對雲的使用盡在把握中。