服務器壓力測試軟件 .

 

 

本文介紹了幾個比較典型的服務器評測軟件,無論什麼評測工具,基本的技術都是利用線程技術模仿和虛擬用戶,在這裏主要的難點在於測試腳本的編寫,每種工具使用的腳本都不一樣,但是大多數工具都提供錄製功能就算是不會編碼的測試人員同樣可以測試。衆所周知,服務器是整個網絡系統和計算平臺的核心,許多重要的數據都保存在服務器上,很多網絡服務都在服務器上運行,因此服務器性能的好壞決定了整個應用系統的性能。現在市面上不同品牌、不同種類的服務器有很多種,用戶在選購時,僅僅從配置上判別是不夠的,最好能夠通過實際測試來篩選,下面就介紹一些較典型的測試工具:

  (一)服務器整機系統性能測試工具

  一臺服務器系統的性能可以按照處理器、內存、存儲、網絡幾部分來劃分,而針對不同的應用,可能會對某些部分的性能要求高一些。

  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是一個強大有力的壓力測試工具,它的腳本可以錄製生成,自動關聯。
歡迎進入軟件測試社區論壇,與200萬技術人員互動交流 >>進入
測試場景面向指標,實現了多方監控。而且測試結果採用圖表顯示,可以自由拆分組合。通過Loadrunner的測試結果圖表對比,你可以尋找出系統瓶頸的原因,一般來說可以按照服務器硬件、網絡、應用程序、操作系統、中間件的順序進行分析。

  Webload:WEB性能壓力測試

  webload是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試;webload通過模擬真實用戶的操作, 生成壓力負載來測試web的性能。用戶創建的是基於javascript的測試腳本,稱爲議程agenda,用它來模擬客戶的行爲,通過執行該腳本來衡量 web應用程序在真實環境下的性能。當前最高版本是6.0。webload提供巡航控制器cruise control的功能,利用巡航控制器,可以預定義web應用程序應該滿足的性能指標,然後測試系統是否滿足這些需求指標;cruise control能夠自動把負載加到web應用程序,並將在此負荷下能夠訪問程序的客戶數量生成報告。webload能夠在測試會話執行期間對監測的系統性能生成實時的報告,這些測試結果通過一個易讀的圖形界面顯示出來,並可以導出到excel和其他文件裏。這兩個軟件的功能雖然強大,並且可以自動生成測試報告,但其終究是一個工具,如果你想真正的定位服務器性能的好壞和性能的瓶頸所在,需要使用工具的人對於測試軟件的方方面面都要有了解,比如軟件體系構架,網絡拓撲,服務器硬件等知識。
 
 
 
網站壓力測試較爲常用的是Apache自帶的ab工具,今天向大家介紹Linux下另外一款能模擬30000併發來進行壓力測試的工具——webbench.
//編譯安裝webbench
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
./webbench -c 2000 -t 60 http://www.9linux.com
//其中-c表示併發數,-t表示時間
./webbench -c 2000 -t 60 http://www.9linux.com/
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://www.9linux.com/
2000 clients, running 60 sec.
Speed=16190 pages/min, 288900 bytes/sec.
Requests: 14267 susceed, 1923 failed.
由上可知在2000併發數下,服務器正常能響應的請求爲14267個,失敗的請求爲1923個。而與此同時我用Fireofx打開網站時已經出現如下信息:
CGIWrap Error: Real UID could not be changed!
Real UID could not be changed!
Server Data:
    Server Administrator/Contact: [email protected]
    Server Name: www.9linux.com
    Server Port: 80
    Server Protocol: HTTP/1.1
Request Data:
    User Agent/Browser: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
    Request Method: GET
    Remote Address: 125.77.142.90
    Remote Port: 64171
服務器已經不堪重負,直接報錯了。最後經過前後參數調整,能正常請求不丟包的併發爲1500個。本工具本質爲壓力測試軟件,但也經常有人用來進行***,消耗服務器帶寬和資源。簡單的Dos,可以在nginx或apache中開啓每IP併發限制。
 
由於要測試另一個IDC給的帶寬是否給足了,所以要從一個機房打10G的流量到測試IDC。之初 採用多線程下載工具,多進程方法下載,可是不理想,跑量達不到要求。
    Iperf是一個網絡性能測試工具。可以測試TCP和UDP帶寬質量,可以測量最大TCP帶寬,具有多種參數和UDP特性,可以報告 帶寬,延遲抖動和數據包丟失.
     費話不多說。先介紹下安裝吧
     如果是centos 的話。添加第三方的源(rpmforge)就可以直接yum
     yum -y install iperf
    當然也可以用源碼包編 譯安裝 。官方站:http://sourceforge.net/projects/iperf/  
    tar xvf iperf-xxx.tar
    cd  iperf
    ./configure
    make
    make install

下面介紹一個簡單用法:
iperf 是一個server 和client 的 組成的工作方式

如,我要測試 B地,測試 A地出的流量 ,剛配置方法如下
A地要配置成client
B地配置爲server

server:
iperf -s -p 8080 -d   

client:
iperf -c serverIP -p 8080 -P 30 -t 300

對上面幾個參數做簡單說明
-s 表示是server   -p 8080 監聽8080  -d 表示以daemon方式運行
-c 以client  方式運行  -P 表示開啓的線程數  -t 表示持續的時間(單位爲s)
 
另外一款監控mysql數據庫的
cacti
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章