Linux下進行Web服務器壓力(并發)測試工具http_load、webbench、ab、Siege、autobench簡單使用教程(轉)...

一、http_load

程序非常小,解壓后也不到100K

http_load以并行復用的方式運行,用以測試web服務器的吞吐量與負載。但是它不同于大多數壓力測試工

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

下載地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz

安裝很簡單

tar zxvf http_load-12mar2006.tar.gz
cd http_load-12mar2006
make && make install

命令格式:

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個測試效果比較好,文件格式

如下:

http://www.vpser.net/uncategorized/choose-vps.html
http://www.vpser.net/vps-cp/hypervm-tutorial.html
http://www.vpser.net/coupons/diavps-april-coupons.html
http://www.vpser.net/security/vps-backup-web-mysql.html

例如:

http_load -p 30 -s 60  urllist.txt

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

命令:./http_load -rate 5 -seconds 10 urllist.txt說明執行了一個持續時間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 20049 

結果分析:

  • 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進行分析,才能得出結論

二、webbench

webbench是Linux下的一個網站壓力測試工具,最多可以模擬3萬個并發連接去測試網站的負載能力。下載地址可以到google搜,我這里給出一個

下載地址:http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz

這個程序更小,解壓后不到50K,呵呵

安裝非常簡單

tar zxvf webbench-1.5.tar.gz
cd webbench-1.5make && make install

會在當前目錄生成webbench可執行文件,直接可以使用了

用法:

webbench -c 并發數 -t 運行測試時間 URL

如:

webbench -c 5000 -t 120 http://www.vpser.net

三、ab

ab是apache自帶的一款功能強大的測試工具

安裝了apache一般就自帶了

用法可以查看它的說明

$ ./ab
./ab: wrong number of arguments
Usage: ./ab [options] [http://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make
-t timelimit Seconds to max. wait for responses
-p postfile File containing data to POST
-T content-type Content-type header for POSTing
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie, eg. ‘Apache=1234. (repeatable)
-H attribute Add Arbitrary header line, eg. ‘Accept-Encoding: gzip’
Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)

參數眾多,一般我們用到的是-n和-c

例如:

./ab -c 1000 -n 100 http://www.vpser.net/index.php

這個表示同時處理1000個請求并運行100次index.php文件.

四、Siege

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

官方:http://www.joedog.org/

Siege下載:http://soft.vpser.net/test/siege/siege-2.67.tar.gz

安裝:

#解壓:
tar -zxf siege-2.67.tar.gz
$進入解壓目錄:
cd siege-2.67/
#安裝:
./configure ; make
make install

使用

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

-c是并發量,-r是重復次數。 url文件就是一個文本,每行都是一個url,它會從里面隨機訪問的。

example.url內容:

http://www.licess.cn
http://www.vpser.net
http://soft.vpser.net

結果說明

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 //每次傳輸所花最短時間

五、利用autobench工具結合httperf命令對web服務器進行測試,得出該服務器可以承載的最大并發連接數與最佳并發數。

1、Httperf

httperf是一款高性能的HTTP測試工具,使用它我們可以準確定位服務器的并發連接能力。下面介紹一下它的主要特征

  • (1) 可以觀察測試客戶端(并非被測服務器)在發起壓力測試時的負載情況。這樣在測試高并發的情況下可以準確的分析問題。(被測服務器無法承載高并發還是測試客戶端無法發起過多請求)
  • (2)支持HTTP/1.1和SSL
  • (3)可以生成可擴展的測試計劃

下載:http://code.google.com/p/httperf/downloads/list

安裝:

tar xvzf httperf-0.9.0.tar.gz
cd httperf-0.9.0
./configure
make && make install

更多的使用方法參見man page。

2、autobench

autobench是一款基于httperf的Perl腳本。它會在一次測試中調用多次httperf來對web服務器進行測試,每次會按照給定的參數增加并發連接數,將 httperf的測試結果保存為CSV格式的文件,該文件可以被Excel直接讀取,方便生成測試報告。借助于autobench自帶的 bench2graph工具可以生成漂亮的測試結果對比圖

?

參考:

http://blog.51cto.com/510512/740219(以上內容轉自此篇文章)

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255890.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255890.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255890.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python數據結構】——并查集的實現(查找、合并、集合、實例)

#!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/7/30 23:12 # Author : linlianqin # Site : # File : 并查集專題(合并、查找、集合).py # Software: PyCharm # description: 并查集其實就是多個數組,每一個數組都…

如何實現ABB機器人與老式焊機的連接控制

問題: 請教一個機器人與老式焊機如何連接,如何設置。 我現在是用SET指令設DO為1再外接繼電器來控制焊機工作的,用RESET指令來使焊機停止工作的。現在可 以焊接,但是如果中間停止或機器人報錯停止不動,焊機始終處于工作…

gitlab 雜記

GitLab 編譯部署 1,請盡量不要在國內主機上部署,中途天朝很有可能導致gem執行出現問題,以下在AWS上部署; 2,系統中必須要有swap分區,不然會出現500錯誤; 系統版本:CentOS 6.x x86_6…

Hadoop分布式系統的安裝部署

1、關于虛擬機的復制 新建一臺虛擬機,系統為CentOS7,再克隆兩臺,組成一個三臺機器的小集群。正常情況下一般需要五臺機器(一個Name節點,一個SecondName節點,三個Data節點。) 此外,為…

Windows線程調度學習(一)

前言 Windows 線程調度器的實現分散在內核各處,并且與許多組件都有關聯,很難進行系統地學習,所以我打算寫幾篇文章來記錄下自己學習過程中的思考和分析,同時也方便日后查閱,此文可以看作是《Windows內核原理與實現》中…

機器人的有效負荷

問題: 假如我想在程序里做多幾個有效載荷,但在手動操縱畫面上只能加一個,其它要怎樣用?給個實際例子給我啊. 回答: 在搬運中,確實是有載荷發生變化的情況,如兩抓(A B)的夾具,有三種載荷情況,1、A抓有載荷…

【Python生成readme文件】——Markdown語法

鏈接:https://www.cnblogs.com/wj-1314/p/8547763.html

編程之美2.13子數組的最大乘積

題目: 給定一個長度為N的數組,只許用乘法,不許用除法,計算任意(N-1)個數的組合中乘積最大的一個組,并寫出算法的時間復雜度。 如果把所可能的乘積找出來,共有(N-1&#x…

[SceneKit專題]11-Reference-Nodes引用節點

說明 本系列文章是對<3D Apple Games by Tutorials>一書的學習記錄和體會 此書對應的代碼地址 SceneKit系列文章目錄 本文將完成一個完整的node節點,帶有完整貼圖,并將其導入其他場景中,成為其中的一個引用節點.這樣可以更方便的組織場景,并能復用場景中的節點,正類似于面…

scapy 安裝及簡單測試

關于scapy Scapy的是一個強大的交互式數據包處理程序&#xff08;使用python編寫&#xff09;。它能夠偽造或者解碼大量的網絡協議數據包&#xff0c;能夠發送、捕捉、匹配請求和回復包等等。它可以很容易地處理一些典型操作&#xff0c;比如端口掃描&#xff0c;tracerouting&…

MoveAbsJ在使用時和MOVEJ有什么區別

問 題&#xff1a; MoveAbsJ在使用時和MOVEJ有什么區別 回 答&#xff1a; MoveAbsJ的目標點是用六個軸伺服電機的偏轉角度值來指定的。 MOVEJ和MOVEL的目標點是用坐標系X Y Z的值來指定的。

Python中的序列操作

Python中的序列操作 分類: python undefined 官方手冊&#xff1a;https://docs.python.org/3.7/library/stdtypes.html#sequence-types-list-tuple-range 序列簡介 序列是指按照位置順序來存儲數據的數據結構&#xff0c;也就是說能通過數值索引進行操作。實際上&#x…

automaticallyAdjustsScrollViewInsets的作用

簡單點說就是automaticallyAdjustsScrollViewInsets根據按所在界面的status bar&#xff0c;navigationbar&#xff0c;與tabbar的高度&#xff0c;自動調整scrollview的 inset,設置為no&#xff0c;不讓viewController調整&#xff0c;我們自己修改布局即可~轉載于:https://ww…

JavaScript 基礎知識 - BOM篇

前言 本篇文章是JavaScript基礎知識的BOM篇&#xff0c;如果前面的《JavaScript基礎知識-DOM篇》看完了&#xff0c;現在就可以學習BOM了。 注意&#xff1a; 所有的案例都在這里鏈接: 提取密碼密碼: yvxo&#xff0c;文章中的每個案例后面都有對應的序號。 1. BOM 基本概念 B…

全球首例機器人自殺事件 因受夠無聊家務

據鳳凰網,一個奧地利家庭購買一小機器人,每天工作就是倒垃圾、倒垃圾。一天完工后,它竟自己啟動,爬到爐邊&#xff0c;推開上面的鍋&#xff0c;把自己活活燒死…專家稱這個機器人實在受夠了無聊的家務瑣事&#xff0c;才毅然選擇自殺機器人也是有尊嚴的!為這有骨氣的robot點根…

【python基礎】——數據類型(列表、字典、集合)

駿馬金龍——python語法基礎 python基礎 變量與運算 符號//%**意義整除整除取余冪次方數據種類 #mermaid-svg-7nSRRijcYFCYwTDr .label{font-family:trebuchet ms, verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-7nSRRijcYFCYw…

linux命令:mkdir命令

命令參數&#xff1a; -m, --mode模式&#xff0c;設定權限<模式> (類似 chmod)&#xff0c;而不是 rwxrwxrwx 減 umask -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄; …

js設置奇偶行數樣式

$(document).ready(function () {odd { "background": "none" }; //奇數樣式 even { "background": "#f3f3f3" }; //偶數樣式 odd_even(".gys_xq", odd, even);});function odd_even(id, odd, even) {$(id).find("…

貝塞爾曲線切割圓角

ios 系統框架已經給我們提供了相應的切割圓角的方法, 但是如果在一個見面有很多控件切割的話會出現卡頓和個別不切的現象 ?123456789101112131415161718192021222324252627/* 創建一個Button */UIButton * button [UIButton buttonWithType:(UIButtonTypeSystem)];[button se…

機器人實現屠宰自動化

當 WESTFLEISCH 注冊合作社考慮在 Coesfeld 肉類加工中心內自動化原有的人工屠宰設備過程時&#xff0c;首先在“剔除直腸”及“切開盆腔骨及腹部”兩個流程中測試使用了兩臺庫卡機器人。在此過程中&#xff0c;機器人主要以它工作的質量及經濟效益說服了使用者。 實施措施/解…