閱讀486 返回首頁    go 技術社區[雲棲]


Windows開源Web服務器性能和壓力測試工具

 linux有很多開源工具用來測試服務器負載,而windows上非常少,幾乎沒有除了幾個複雜的JMeter WET等

  將兩個好用的工具是Linux版本通過Cygwin移植過來,方便廣大windows人員使用,經過初步測試效果一致,是命令行簡單易用的測試軟件

  1 http_load

  程序非常小,http_load以並行複用的方式運行,用以測試web服務器的吞吐量與負載。但是它不同於大多數壓力測試

  具,它可以以一個單一的進程運行,一般不會把客戶機搞死。還可以測試HTTPS類的網站請求。

  源碼官方下載地址:https://www.acme.com/software/http_load/http_load-12mar2006.tar.gz 或者https://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz

  Windows版本下載:https://download.csdn.net/detail/masonwu21/6254461

  命令格式:http_load  -p 並發訪問進程數  -s 訪問時間  需要訪問的URL文件

  參數其實可以自由組合,參數之間的選擇並沒有什麼限製。比如你寫成http_load -parallel 5 -seconds 300 urls.txt也是可以的。

  我們把參數給大家簡單說明一下。

  -parallel 簡寫-p :含義是並發的用戶進程數。

  -fetches 簡寫-f :含義是總計的訪問次數

  -rate    簡寫-p :含義是每秒的訪問頻率

  -seconds簡寫-s :含義是總計的訪問時間

  準備URL文件:urllist.txt,文件格式是每行一個URL,URL最好超過50-100個測試效果比較好.文件格式

  如下:

  https://www.vpser.net/uncategorized/choose-vps.html

  https://www.vpser.net/vps-cp/hypervm-tutorial.html

  https://www.vpser.net/coupons/diavps-april-coupons.html

  https://www.vpser.net/security/vps-backup-web-mysql.html

  例如:

  http_load -p 30 -s 60  urllist.txt

  參數了解了,我們來看運行一條命令來看看它的返回結果

  命令:% ./http_load -rate 5 -seconds 10 urls說明執行了一個持續時間10秒的測試,每秒的頻率為5。

49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds5916 mean bytes/connection4.89274
fetches/sec, 28945.5 bytes/secmsecs/connect: 28.8932 mean, 44.243 max, 24.488 minmsecs/first
-response: 63.5362 mean, 81.624 max, 57.803 minHTTP response codes: code 200 — 49

  結果分析:

  1.49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds

  說明在上麵的測試中運行了49個請求,最大的並發進程數是2,總計傳輸的數據是289884bytes,運行的時間是10.0148秒

  2.5916 mean bytes/connection說明每一連接平均傳輸的數據量289884/49=5916

  3.4.89274 fetches/sec, 28945.5 bytes/sec

  說明每秒的響應請求為4.89274,每秒傳遞的數據為28945.5 bytes/sec

  4.msecs/connect: 28.8932 mean, 44.243 max, 24.488 min說明每連接的平均響應時間是28.8932 msecs

  ,最大的響應時間44.243 msecs,最小的響應時間24.488 msecs

  5.msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

  6、HTTP response codes: code 200 — 49     說明打開響應頁麵的類型,如果403的類型過多,那可能

  要注意是否係統遇到了瓶頸。

特殊說明:

  測試結果中主要的指標是 fetches/sec、msecs/connect 這個選項,即服務器每秒能夠響應的查詢次數,

  用這個指標來衡量性能。似乎比 apache的ab準確率要高一些,也更有說服力一些。

  Qpt-每秒響應用戶數和response time,每連接響應用戶時間。

  測試的結果主要也是看這兩個值。當然僅有這兩個指標並不能完成對性能的分析,我們還需要對服務器的

  cpu、men進行分析,才能得出結論

  2 siege

  一款開源的壓力測試工具,可以根據配置對一個WEB站點進行多用戶的並發訪問,記錄每個用戶所有請求過程的相應時間,並在一定數量的並發訪問下重複進行。

  Siege官方下載:https://www.joedog.org/

  Windows版本下載:https://download.csdn.net/detail/masonwu21/6254773

  使用

  siege -c 200 -r 10 -f example.url

  -c是並發量,-r是重複次數。 url文件就是一個文本,每行都是一個url,它會從裏麵隨機訪問的。

  example.url內容:

  https://www.licess.cn

  https://www.vpser.net

  https://soft.vpser.net

  或者直接使用Siege格式模擬一個負載測試,5個並發用戶在10秒內訪問網站www.example. com。需要說明一下,使用Siege時的並發被稱為事務。因此我們要模擬的測試是使用Siege命令讓Web服務器在10秒的時間內一次滿足5個同時發生的事務:

  siege -c 5 -t10S https://www.example.com/

  結果說明

Lifting the server siege… done.
Transactions: 3419263 hits //完成419263次處理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 5999.69 secs //總共用時
Data transferred: 84273.91 MB //共數據傳輸84273.91 MB
Response time: 0.37 secs //相應用時1.65秒:顯示網絡連接的速度
Transaction rate: 569.91 trans/sec //均每秒完成 569.91 次處理:表示服務器後
Throughput: 14.05 MB/sec //平均每秒傳送數據
Concurrency: 213.42 //實際最高並發數
Successful transactions: 2564081 //成功處理次數
Failed transactions: 11 //失敗處理次數
Longest transaction: 29.04 //每次傳輸所花最長時間
Shortest transaction: 0.00 //每次傳輸所花最短時間

   



最新內容請見作者的GitHub頁:https://qaseven.github.io/

   

最後更新:2017-07-18 20:35:53

  上一篇:go  性能為王:SQL標量子查詢的優化案例分析
  下一篇:go  一篇文章解讀提速、降費黑科技:PCDN定義、功能、架構、場景和優勢