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