馬上年底了呐粘,各種云評(píng)測(cè)陸續(xù)放了出來满俗,最近看到有一些評(píng)測(cè)也引起了爭(zhēng)議转捕,第三方評(píng)測(cè)數(shù)據(jù)可以作為參考,真正要使用云唆垃,將業(yè)務(wù)放到云上五芝,還是要自己來做一些評(píng)測(cè),一方面自己跑的數(shù)據(jù)可信辕万,一方面自己最了解業(yè)務(wù)需求枢步,知道測(cè)試的時(shí)候應(yīng)該重點(diǎn)關(guān)注那些指標(biāo)。
云評(píng)測(cè)的三個(gè)階段
云在使用之前應(yīng)該經(jīng)過三個(gè)評(píng)測(cè)階段渐尿,性能評(píng)測(cè)醉途、網(wǎng)絡(luò)質(zhì)量評(píng)測(cè)、業(yè)務(wù)評(píng)測(cè)砖茸。
1.性能測(cè)試
性能評(píng)測(cè)主要關(guān)注云服務(wù)的性能隘擎,比如云主機(jī)的CPU、磁盤凉夯、網(wǎng)絡(luò)性能货葬,RDS、負(fù)載均衡恍涂、S3等服務(wù)的性能宝惰。客觀的說再沧,因?yàn)槊恳粋€(gè)朵云可用區(qū)域上線的時(shí)間不一樣尼夺,搭建云的物理機(jī)配置可能也會(huì)不同,所以性能多少都會(huì)有差異炒瘸。另外淤堵,因?yàn)樵茝S商的能力不同,有的云廠商軟件版本也會(huì)不一致顷扩,造成性能也會(huì)有差異拐邪。盡管云廠商在上線之前都會(huì)做嚴(yán)格的性能測(cè)試,但是云廠商一般是基準(zhǔn)測(cè)試隘截,并且不會(huì)公布詳細(xì)的數(shù)據(jù)扎阶,所以作為云的使用者應(yīng)該通過自己評(píng)測(cè),做到心中有數(shù)婶芭。
2.網(wǎng)絡(luò)質(zhì)量評(píng)測(cè)
云的一個(gè)特性就是基于網(wǎng)絡(luò)东臀,所以放到云上的業(yè)務(wù)大多也都是基于網(wǎng)絡(luò)的,所以對(duì)云的網(wǎng)絡(luò)質(zhì)量評(píng)測(cè)很重要犀农。另外要注意惰赋,網(wǎng)絡(luò)質(zhì)量是動(dòng)態(tài)變化的,所以對(duì)云的網(wǎng)絡(luò)質(zhì)量評(píng)測(cè)在使用之前要評(píng)測(cè)呵哨,在使用過程中也要長(zhǎng)期持續(xù)的監(jiān)控赁濒。
3.業(yè)務(wù)評(píng)測(cè)
業(yè)務(wù)上線之前轨奄,應(yīng)盡可能全面的對(duì)云系統(tǒng)是否能滿足業(yè)務(wù)進(jìn)行評(píng)測(cè),盡可能的模擬各種業(yè)務(wù)場(chǎng)景拒炎,確保在各種極端情況下挪拟,云系統(tǒng)能滿足業(yè)務(wù)的需求。一般在流程比較完善的組織內(nèi)部枝冀,都會(huì)有嚴(yán)格的業(yè)務(wù)測(cè)試流程舞丛,但是要注意如果之前的流程是在非云環(huán)境,要結(jié)合云環(huán)境進(jìn)行相應(yīng)的調(diào)整果漾。
云評(píng)測(cè)都可以使用那些工具
云評(píng)測(cè)可以使用的工具很多球切,因?yàn)樵谠粕弦话闶褂肔inux居多,本文介紹的工具側(cè)重Linux系統(tǒng)绒障,并且以開源工具為主吨凑。
1.Super Pi
網(wǎng)址:http://www.superpi.net/
Super Pi是一個(gè)單線程基準(zhǔn)測(cè)試,可以計(jì)算特定位數(shù)的Pi户辱。使用Gauss-Legendre算法鸵钝,是測(cè)試純單線程x86浮點(diǎn)性能的理想選擇。
Super Pi是免費(fèi)軟件庐镐,可以隨意下載分發(fā)恩商,在Super PI網(wǎng)站上提供常見硬件的Pi計(jì)數(shù)得分,方便對(duì)比必逆。
注意Super Pi是單線程的怠堪,不能用于多線程的CPU測(cè)試,通常用于粗略比較CPU計(jì)算能力名眉,CPU測(cè)試衡量指標(biāo)比較多粟矿,建議CPU測(cè)試側(cè)重基于業(yè)務(wù)壓力的測(cè)試。
2.FIO
源代碼網(wǎng)址:https://github.com/axboe/fio
二進(jìn)制下載網(wǎng)址:http://freshmeat.sourceforge.net/projects/fio
FIO作者是Jens Axboe损拢,是一款I(lǐng)/O測(cè)試工具陌粹,用于基準(zhǔn)測(cè)試和壓力/硬件驗(yàn)證。支持19種不同類型的I/O引擎(sync福压,mmap掏秩,libaio,posixaio荆姆,SG v3蒙幻,splice,null胞枕,network,syslet魏宽,guasi腐泻,solarisaio等)决乎,支持多線程作業(yè),可以在塊設(shè)備和文件上工作派桩,F(xiàn)IO是測(cè)試IOPS的利器构诚,同時(shí)支持Windows系統(tǒng)和Linux系統(tǒng)。
3.IOzone
網(wǎng)址:http://iozone.org/
IOzone是一個(gè)文件系統(tǒng)基準(zhǔn)測(cè)試工具铆惑,支持測(cè)試各種文件系統(tǒng)范嘱。IOzone支持多線程,支持同步或異步I/O讀寫模式员魏,IOzone還有一個(gè)特點(diǎn)是支持測(cè)試結(jié)果生成圖片丑蛤,方便直觀的看到結(jié)果。
4.dd命令
dd是系統(tǒng)自帶命令撕阎,不用特別安裝受裹,使用dd命令可以快速判斷磁盤io性能。如果源是磁盤虏束,目標(biāo)是/dev/null棉饶,可以初步判斷磁盤讀性能;如果源是/dev/zero镇匀,目標(biāo)是磁盤照藻,可以初步判斷磁盤寫性能。dd缺點(diǎn)是只能測(cè)試順序讀寫汗侵,不能測(cè)試隨機(jī)讀寫性能幸缕。
5.iometer
網(wǎng)址:http://www.iometer.org
Iometer常用于磁盤I/O測(cè)試,是用于單個(gè)和集群系統(tǒng)的I/O子系統(tǒng)測(cè)測(cè)試工具晃择。最初由英特爾公司開發(fā)冀值,并將其交給開源開發(fā)實(shí)驗(yàn)室(OSDL)。
Iometer 包含了兩個(gè)程序宫屠,Iometer 和 Dynamo列疗。Iometer 是控制程序,可以設(shè)置操作參數(shù)浪蹂,啟動(dòng)和停止測(cè)試抵栈。Dynamo 是負(fù)載生成器。Iometer支持Windows系統(tǒng)和Linux系統(tǒng)I/O測(cè)試坤次。
6.iPerf/iPerf3
網(wǎng)址:https://iperf.fr/
iPerf 是一個(gè)網(wǎng)絡(luò)性能測(cè)試工具古劲,可以測(cè)試TCP和UDP帶寬質(zhì)量,具有多種參數(shù)和UDP特性缰猴。iPerf可以報(bào)告帶寬产艾,延遲抖動(dòng)和數(shù)據(jù)包丟失。
iPerf支持常見的操作系統(tǒng)。
7.Netperf
網(wǎng)址:https://hewlettpackard.github.io/netperf/
Netperf最初是由惠普開發(fā)的闷堡,用于衡量許多不同類型網(wǎng)絡(luò)的性能隘膘。提供單向吞吐量和端到端延遲的測(cè)試。Netperf基于C/S模式的杠览,服務(wù)器端是netserver弯菊,用來偵聽來自客戶端的連接,客戶端是netperf踱阿。在服務(wù)器端和客戶端之間管钳,建立控制連接,傳遞測(cè)試配置的信息软舌,以及測(cè)試的結(jié)果才漆。Netperf提供了許多預(yù)定義的測(cè)試,例如 測(cè)量批量(單向)數(shù)據(jù)傳輸或請(qǐng)求響應(yīng)性能葫隙。Netperf根據(jù)應(yīng)用的不同栽烂,可以進(jìn)行不同模式的網(wǎng)絡(luò)性能測(cè)試,
8.ping恋脚、traceroute腺办、mtr
ping、traceroute糟描、mtr是系統(tǒng)自帶命令怀喉,可用于測(cè)試網(wǎng)絡(luò)質(zhì)量,特別是mtr命令可以連續(xù)測(cè)試船响。
但是命令行不能或者不方便長(zhǎng)期進(jìn)行網(wǎng)絡(luò)質(zhì)量測(cè)試躬拢。
9.smokeping
網(wǎng)址:https://oss.oetiker.ch/smokeping
SmokePing由Perl編寫的免費(fèi)和開源軟件,由MRTG和RRDtool的創(chuàng)建者Tobi Oetiker編寫见间,能可視化的長(zhǎng)期跟蹤網(wǎng)絡(luò)質(zhì)量聊闯,使用瀏覽器交互式圖形展現(xiàn),支持分布式部署米诉,可以配置報(bào)警菱蔬,并且支持插件。
10.ApacheBench
ApacheBench(ab)是一個(gè)單線程命令行計(jì)算機(jī)程序史侣,用于測(cè)量HTTP Web服務(wù)器的性能拴泌。最初設(shè)計(jì)用于測(cè)試Apache HTTP Server,通用于測(cè)試任何Web服務(wù)器惊橱。
ApacheBench與標(biāo)準(zhǔn)Apache源代碼分發(fā)捆綁在一起蚪腐,與Apache Web服務(wù)器本身一樣,是免費(fèi)的開源軟件税朴,并根據(jù)Apache許可證的條款進(jìn)行分發(fā)回季。
11.SysBench
sysbench是一個(gè)基于LuaJIT的可編寫腳本的多線程基準(zhǔn)測(cè)試工具家制。 它最常用于數(shù)據(jù)庫(kù)基準(zhǔn)測(cè)試,但也可用于創(chuàng)建不涉及數(shù)據(jù)庫(kù)服務(wù)器的任意復(fù)雜工作負(fù)載泡一。
sysbench特性如下:
支持系統(tǒng)基準(zhǔn)測(cè)試慰丛;
統(tǒng)計(jì)有關(guān)速率和延遲的廣泛數(shù)據(jù),包括百分比和直方圖瘾杭;
通過在用戶提供的Lua腳本中實(shí)現(xiàn)預(yù)定義的鉤子,可以輕松創(chuàng)建新的基準(zhǔn)測(cè)試哪亿;
支持POSIX線程性能測(cè)試粥烁;
支持?jǐn)?shù)據(jù)庫(kù)OLTP基準(zhǔn)測(cè)試;
能夠每秒生成和跟蹤數(shù)億個(gè)事件蝇棉。
12.Zabbix
Zabbix是目前流行的開源監(jiān)控工具讨阻,支持常見操作系統(tǒng),支持網(wǎng)絡(luò)設(shè)備篡殷,配置靈活钝吮,支持自定義指標(biāo)的監(jiān)控,支持多種報(bào)警方式板辽。
Zabbix很適合長(zhǎng)期對(duì)云的性能監(jiān)控奇瘦,也可以和性能測(cè)試工具聯(lián)動(dòng),可視化的展現(xiàn)測(cè)試結(jié)果劲弦。
自主云評(píng)測(cè)是必須掌握的技能
測(cè)試之前耳标,首先需要理解被測(cè)試的指標(biāo),開源工具的使用一般都有些門檻邑跪,需要多研究和實(shí)戰(zhàn)次坡。上面介紹的開源工具基本都支持命令行,可以寫成腳本画畅,方便日常使用砸琅,也可以結(jié)合自己的運(yùn)維場(chǎng)景,盡量將常用場(chǎng)景的測(cè)試自動(dòng)化轴踱。
由于云環(huán)境復(fù)雜症脂,并且可能每個(gè)業(yè)務(wù)場(chǎng)景對(duì)云的要求也不一樣,使用云之前需要對(duì)云進(jìn)行從性能到網(wǎng)絡(luò)寇僧、再到業(yè)務(wù)的全面評(píng)測(cè)摊腋,做到心中有底,才能避免業(yè)務(wù)發(fā)生問題嘁傀。隨著業(yè)務(wù)壓力增加兴蒸,由于有詳細(xì)的數(shù)據(jù),也能做到心中有數(shù)细办,讓對(duì)云的使用盡在把握中橙凳。