服務器是整個網絡系統和計算平台的核心,許多重要的數據都保存在服務器上,很多網絡服務都在服務器上運行,因此服務器性能的好壞決定了整個應用系統的性能。
現在市面上不同品牌、不同種類的服務器有很多種,用戶在選購時,怎樣從紛繁的型號中選擇出所需要的,適合於自己應用的服務器產品,僅僅從配置上判別是不夠的,最好能夠通過實際測試來篩選。而各種的評測軟件有很多種,你應該選擇哪個軟件測試?下面就介紹一些較典型的測試工具:
(一)服務器整機系統性能測試工具
一台服務器系統的性能可以按照處理器、內存、存儲、網絡幾部分來劃分,而針對不同的應用,可能會對某些部分的性能要求高一些。
Iometer(www.iometer.org):存儲子系統讀寫性能測試
Iometer是Windows系統下對存儲子系統的讀寫性能進行測試的軟件。可以顯示磁盤系統的最大IO能力、磁盤系統的最大吞吐量、CPU使用率、錯誤信息等。用戶可以通過設置不同的測試的參數,有存取類型(如sequential ,random)、讀寫塊大小(如64K、256K),隊列深度等,來模擬實際應用的讀寫環境進行測試。
Iometer操作簡單,可以錄制測試腳本,可以准確有效的反映存儲系統的讀寫性能,為各大服務器和存儲廠商所廣泛采用。
Sisoft Sandra(www.sisoftware.co.uk):WINDOWS下基准評測
SiSoft發行的Sandra系列測試軟件是Windows系統下的基准評測軟件。此軟件有超過三十種以上的測試項目,能夠查看系統所有配件的信息,而且能夠對部分配件(如CPU、內存、硬盤等)進行打分(benchmark),並且可以與其它型號硬件的得分進行對比。另外,該軟件還有系統穩定性綜合測試、性能調整向導等附加功能。
Sisoft Sandra軟件在最近發布的Intel bensley平台上測試的內存帶寬性能並不理想,不知道采用該軟件測試的FBD內存性能是否還有參考價值,或許軟件應該針對FBD內存帶寬的測試項目做一個升級。
Iozone(www.iozone.org):linux下I/O性能測試
現在有很多的服務器系統都是采用linux操作系統,在linux平台下測試I/O性能可以采用iozone。
iozone是一個文件系統的benchmark工具,可以測試不同的操作系統中文件系統的讀寫性能。可以測試Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盤的性能。測試所有這些方面,生成excel文件,另外, iozone還附帶了用gnuplot畫圖的腳本。
該軟件用在大規模機群系統上測試NFS的性能,更加具有說服力。
Netperf(www.netperf.org):網絡性能測試
Netperf可以測試服務器網絡性能,主要針對基於TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多塊的速度接收數據。
Netperf工具以client/server方式工作。server端是netserver,用來偵聽來自client端的連接,client端是 netperf,用來向server發起網絡測試。在client與server之間,首先建立一個控制連接,傳遞有關測試配置的信息,以及測試的結果;在控制連接建立並傳遞了測試配置信息以後,client與server之間會再建立一個測試連接,用來來回傳遞著特殊的流量模式,以測試網絡的性能。
對於服務器系統來說,網絡性能顯得尤其重要,有些服務器上為了節省成本,采用了桌面級的網絡芯片,性能怎樣,用這個軟件一測便知了。
以上介紹的這幾款測試工具都是可以免費從網上下載的非商業軟件,但是其測試結果和認可程度均是為大多數使用者所認同的。你可以根據自己的應用需求選擇不同的軟件進行測試。
(二)針對應用的測試工具
隨著web應用的增多,服務器應用解決方案中以Web為核心的應用也越來越多,很多公司各種應用的架構都以web應用為主。一般的web測試和以往的應用程序的測試的側重點不完全相同,在基本功能已經通過測試後,就要進行重要的系統性能測試了。系統的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟件系統而言包括執行效率、資源占用率、穩定性、安全性、兼容性、可靠性等等,以下重點從負載壓力方面來介紹服務器系統性能的測試。系統的負載和壓力需要采用負載測試工具進行,虛擬一定數量的用戶來測試系統的表現,看是否滿足預期的設計指標要求。負載測試的目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等如何決定系統的性能,例如穩定性和響應等。
負載測試一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的內容都是編寫出測試腳本,腳本中一般包括用戶常用的功能,然後運行,得出報告。
使用壓力測試工具對web服務器進行壓力測試。測試可以幫助找到一些大型的問題,如死機、崩損、內存洩漏等,因為有些存在內存洩漏問題的程序,在運行一兩次時可能不會出現問題,但是如果運行了成千上萬次,內存洩漏得越來越多,就會導致系統崩滑。
Loadrunner:預測系統行為和性能的負載測試工具
目前,業界中有不少能夠做性能和壓力測試的工具,Mercury(美科利)Interactive公司的LoadRunner是其中的佼佼者,也已經成為了行業的規范,目前最新的版本8.1。
LoadRunner 是一種預測系統行為和性能的負載測試工具,通過模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner 能夠對整個企業架構進行測試,LoadRunner 適用於各種體系架構,能支持廣范的協議和技術(如Web、Ftp、Database等),能預測系統行為並優化系統性能。它通過模擬實際用戶的操作行為和實行實時性能監測,來幫助您更快的查找和發現問題。Loadrunner是一個強大有力的壓力測試工具,它的腳本可以錄制生成,自動關聯。測試場景面向指標,實現了多方監控。而且測試結果采用圖表顯示,可以自由拆分組合。
通過Loadrunner的測試結果圖表對比,你可以尋找出系統瓶頸的原因,一般來說可以按照服務器硬件、網絡、應用程序、操作系統、中間件的順序進行分析。