服務(wù)器性能測試典型工具介紹
眾所周知,服務(wù)器是整個(gè)網(wǎng)絡(luò)系統(tǒng)和計(jì)算平臺(tái)的核心,許多重要的數(shù)據(jù)都保存在服務(wù)器上,很多網(wǎng)絡(luò)服務(wù)都在服務(wù)器上運(yùn)行,因此服務(wù)器性能的好壞決定了整個(gè)應(yīng)用系統(tǒng)的性能。
現(xiàn)在市面上不同品牌、不同種類的服務(wù)器有很多種,用戶在選購時(shí),怎樣從紛繁的型號(hào)中選擇出所需要的,適合于自己應(yīng)用的服務(wù)器產(chǎn)品,僅僅從配置上判別是不夠的,最好能夠通過實(shí)際測試來篩選。而各種的評測軟件有很多種,你應(yīng)該選擇哪個(gè)軟件測試?下面就介紹一些較典型的測試工具:
(一)服務(wù)器整機(jī)系統(tǒng)性能測試工具
一臺(tái)服務(wù)器系統(tǒng)的性能可以按照處理器、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)幾部分來劃分,而針對不同的應(yīng)用,可能會(huì)對某些部分的性能要求高一些。
Iometer:存儲(chǔ)子系統(tǒng)讀寫性能測試
Iometer是Windows系統(tǒng)下對存儲(chǔ)子系統(tǒng)的讀寫性能進(jìn)行測試的軟件。可以顯示磁盤系統(tǒng)的最大I/O能力、磁盤系統(tǒng)的最大吞吐量、CPU使用率、錯(cuò)誤信息等。用戶可以通過設(shè)置不同的測試的參數(shù),有存取類型(如sequential ,random)、讀寫塊大小(如64K、256K),隊(duì)列深度等,來模擬實(shí)際應(yīng)用的讀寫環(huán)境進(jìn)行測試。
Iometer操作簡單,可以錄制測試腳本,可以準(zhǔn)確有效的反映存儲(chǔ)系統(tǒng)的讀寫性能,為各大服務(wù)器和存儲(chǔ)廠商所廣泛采用。
Sisoft Sandra:WINDOWS下基準(zhǔn)評測
SiSoft發(fā)行的Sandra系列測試軟件是Windows系統(tǒng)下的基準(zhǔn)評測軟件。此軟件有超過三十種以上的測試項(xiàng)目,能夠查看系統(tǒng)所有配件的信息,而且能夠?qū)Σ糠峙浼?如CPU、內(nèi)存、硬盤等)進(jìn)行打分(benchmark),并且可以與其它型號(hào)硬件的得分進(jìn)行對比。另外,該軟件還有系統(tǒng)穩(wěn)定性綜合測試、性能調(diào)整向?qū)У雀郊庸δ堋?/p>
Sisoft Sandra軟件在最近發(fā)布的Intel bensley平臺(tái)上測試的內(nèi)存帶寬性能并不理想,不知道采用該軟件測試的FBD內(nèi)存性能是否還有參考價(jià)值,或許軟件應(yīng)該針對FBD內(nèi)存帶寬的測試項(xiàng)目做一個(gè)升級(jí)。
Iozone:linux下I/O性能測試
現(xiàn)在有很多的服務(wù)器系統(tǒng)都是采用linux操作系統(tǒng),在linux平臺(tái)下測試I/O性能可以采用iozone。
Iozone是一個(gè)文件系統(tǒng)的benchmark工具,可以測試不同的操作系統(tǒng)中文件系統(tǒng)的讀寫性能??梢詼y試Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盤的性能。測試所有這些方面,生成excel文件,另外, iozone還附帶了用gnuplot畫圖的腳本。
該軟件用在大規(guī)模機(jī)群系統(tǒng)上測試NFS的性能,更加具有說服力。
Netperf:網(wǎng)絡(luò)性能測試
Netperf可以測試服務(wù)器網(wǎng)絡(luò)性能,主要針對基于TCP或UDP的傳輸。Netperf根據(jù)應(yīng)用的不同,可以進(jìn)行不同模式的網(wǎng)絡(luò)性能測試,即批量數(shù)據(jù)傳輸(bulk data transfer)模式和請求/應(yīng)答(request/reponse)模式。Netperf測試結(jié)果所反映的是一個(gè)系統(tǒng)能夠以多快的速度向另外一個(gè)系統(tǒng)發(fā)送數(shù)據(jù),以及另外一個(gè)系統(tǒng)能夠以多塊的速度接收數(shù)據(jù)。
Netperf工具以client/server方式工作。server端是netserver,用來偵聽來自client端的連接,client端是 netperf,用來向server發(fā)起網(wǎng)絡(luò)測試。在client與server之間,首先建立一個(gè)控制連接,傳遞有關(guān)測試配置的信息,以及測試的結(jié)果;在控制連接建立并傳遞了測試配置信息以后,client與server之間會(huì)再建立一個(gè)測試連接,用來來回傳遞著特殊的流量模式,以測試網(wǎng)絡(luò)的性能。
對于服務(wù)器系統(tǒng)來說,網(wǎng)絡(luò)性能顯得尤其重要,有些服務(wù)器上為了節(jié)省成本,采用了桌面級(jí)的網(wǎng)絡(luò)芯片,性能怎樣,用這個(gè)軟件一測便知了。
以上介紹的這幾款測試工具都是可以免費(fèi)從網(wǎng)上下載的非商業(yè)軟件,但是其測試結(jié)果和認(rèn)可程度均是為大多數(shù)使用者所認(rèn)同的。你可以根據(jù)自己的應(yīng)用需求選擇不同的軟件進(jìn)行測試。
(二)針對應(yīng)用的測試工具
隨著web應(yīng)用的增多,服務(wù)器應(yīng)用解決方案中以Web為核心的應(yīng)用也越來越多,很多公司各種應(yīng)用的架構(gòu)都以web應(yīng)用為主。一般的web測試和以往的應(yīng)用程序的測試的側(cè)重點(diǎn)不完全相同,在基本功能已經(jīng)通過測試后,就要進(jìn)行重要的系統(tǒng)性能測試了。系統(tǒng)的性能是一個(gè)很大的概念,覆蓋面非常廣泛,對一個(gè)軟件系統(tǒng)而言包括執(zhí)行效率、資源占用率、穩(wěn)定性、安全性、兼容性、可靠性等等,以下重點(diǎn)從負(fù)載壓力方面來介紹服務(wù)器系統(tǒng)性能的測試。系統(tǒng)的負(fù)載和壓力需要采用負(fù)載測試工具進(jìn)行,虛擬一定數(shù)量的用戶來測試系統(tǒng)的表現(xiàn),看是否滿足預(yù)期的設(shè)計(jì)指標(biāo)要求。負(fù)載測試的目標(biāo)是測試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)組成部分的相應(yīng)輸出項(xiàng),例如通過量、響應(yīng)時(shí)間、CPU負(fù)載、內(nèi)存使用等如何決定系統(tǒng)的性能,例如穩(wěn)定性和響應(yīng)等。
負(fù)載測試一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的內(nèi)容都是編寫出測試腳本,腳本中一般包括用戶常用的功能,然后運(yùn)行,得出報(bào)告。
使用壓力測試工具對web服務(wù)器進(jìn)行壓力測試。測試可以幫助找到一些大型的問題,如死機(jī)、崩損、內(nèi)存泄漏等,因?yàn)橛行┐嬖趦?nèi)存泄漏問題的程序,在運(yùn)行一兩次時(shí)可能不會(huì)出現(xiàn)問題,但是如果運(yùn)行了成千上萬次,內(nèi)存泄漏得越來越多,就會(huì)導(dǎo)致系統(tǒng)崩滑。
Loadrunner:預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具
目前,業(yè)界中有不少能夠做性能和壓力測試的工具,Mercury(美科利)Interactive公司的LoadRunner是其中的佼佼者,也已經(jīng)成為了行業(yè)的規(guī)范,目前最新的版本8.1。
LoadRunner 是一種預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具,通過模擬上千萬用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測的方式來確認(rèn)和查找問題,LoadRunner 能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測試,LoadRunner 適用于各種體系架構(gòu),能支持廣范的協(xié)議和技術(shù)(如Web、Ftp、Database等),能預(yù)測系統(tǒng)行為并優(yōu)化系統(tǒng)性能。它通過模擬實(shí)際用戶的操作行為和實(shí)行實(shí)時(shí)性能監(jiān)測,來幫助您更快的查找和發(fā)現(xiàn)問題。Loadrunner是一個(gè)強(qiáng)大有力的壓力測試工具,它的腳本可以錄制生成,自動(dòng)關(guān)聯(lián)。測試場景面向指標(biāo),實(shí)現(xiàn)了多方監(jiān)控。而且測試結(jié)果采用圖表顯示,可以自由拆分組合。
通過Loadrunner的測試結(jié)果圖表對比,你可以尋找出系統(tǒng)瓶頸的原因,一般來說可以按照服務(wù)器硬件、網(wǎng)絡(luò)、應(yīng)用程序、操作系統(tǒng)、中間件的順序進(jìn)行分析。
Loadrunner是一款收費(fèi)軟件,根據(jù)測試項(xiàng)目和虛擬用戶數(shù)目的不同而花費(fèi)不同的費(fèi)用。不過你可以下載到免費(fèi)使用10天的測試版本。
Webload:WEB性能壓力測試
webload是RadView公司推出的一個(gè)性能測試和分析工具,它讓web應(yīng)用程序開發(fā)者自動(dòng)執(zhí)行壓力測試; webload通過模擬真實(shí)用戶的操作,生成壓力負(fù)載來測試web的性能。
用戶創(chuàng)建的是基于javascript的測試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執(zhí)行該腳本來衡量web應(yīng)用程序在真實(shí)環(huán)境下的性能。當(dāng)前最高版本是6.0。webload提供巡航控制器cruise control的功能,利用巡航控制器,可以預(yù)定義web應(yīng)用程序應(yīng)該滿足的性能指標(biāo),然后測試系統(tǒng)是否滿足這些需求指標(biāo); cruise control能夠自動(dòng)把負(fù)載加到web應(yīng)用程序,并將在此負(fù)荷下能夠訪問程序的客戶數(shù)量生成報(bào)告。
webload能夠在測試會(huì)話執(zhí)行期間對監(jiān)測的系統(tǒng)性能生成實(shí)時(shí)的報(bào)告,這些測試結(jié)果通過一個(gè)易讀的圖形界面顯示出來,并可以導(dǎo)出到excel和其他文件里。
這兩個(gè)軟件的功能雖然強(qiáng)大,并且可以自動(dòng)生成測試報(bào)告,但其終究是一個(gè)工具,如果你想真正的定位服務(wù)器性能的好壞和性能的瓶頸所在,需要使用工具的人對于測試軟件的方方面面都要有了解,比如軟件體系構(gòu)架,網(wǎng)絡(luò)拓?fù)?,服?wù)器硬件等知識(shí)。