1. 程式人生 > >linux中ab壓力測試工具

linux中ab壓力測試工具

PS:網站效能壓力測試是效能調優過程中必不可少的一環。只有讓伺服器處在高壓情況下才能真正體現出各種設定所暴露的問題。Apache中有個自帶的,名為ab的程式,可以對Apache或其它型別的伺服器進行網站訪問壓力測試。

ApacheBench命令原理:

ab命令會建立很多的併發訪問執行緒,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,因此,既可以用來測試Apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web伺服器的壓力。

ab命令對發出負載的計算機要求很低,既不會佔用很高CPU,也不會佔用很多記憶體,但卻會給目標伺服器造成巨大的負載,其原理類似CC攻擊。自己測試使用也須注意,否則一次上太多的負載,可能造成目標伺服器因資源耗完,嚴重時甚至導致宕機。

ApacheBench引數說明

格式:ab [options] [http://]hostname[:port]/path
引數說明:
-n requests Number of requests to perform
//在測試會話中所執行的請求個數(本次測試總共要訪問頁面的次數)。預設時,僅執行一個請求。
-c concurrency Number of multiple requests to make
//一次產生的請求個數(併發數)。預設是一次一個。
-t timelimit Seconds to max. wait for responses
//測試所進行的最大秒數。其內部隱含值是-n 50000。它可以使對伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。
-p postfile File containing data to POST
//包含了需要POST的資料的檔案,檔案格式如“p1=1&p2=2”.使用方法是 -p 111.txt 。 (配合-T)
-T content-type Content-type header for POSTing
//POST資料所使用的Content-type頭資訊,如 -T “application/x-www-form-urlencoded” 。 (配合-p)
-v verbosity How much troubleshooting info to print
//設定顯示資訊的詳細程度 – 4或更大值會顯示頭資訊, 3或更大值可以顯示響應程式碼(404, 200等), 2或更大值可以顯示警告和其他資訊。 -V 顯示版本號並退出。
-w Print out results in HTML tables
//以HTML表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。
-i Use HEAD instead of GET
// 執行HEAD請求,而不是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. -C “c1=1234,c2=2,c3=3″ (repeatable)
//-C cookie-name=value 對請求附加一個Cookie:行。 其典型形式是name=value的一個引數對。此引數可以重複,用逗號分割。
提示:可以藉助session實現原理傳遞 JSESSIONID引數, 實現保持會話的功能,如
-C ” c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8″ 。
-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.
//-P proxy-auth-username:password 對一箇中轉代理提供BASIC認證信任。使用者名稱和密碼由一個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即, 是否傳送了401認證需求程式碼),此字串都會被髮送。
-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)
//-attributes 設定屬性的字串. 缺陷程式中有各種靜態宣告的固定長度的緩衝區。另外,對命令列引數、伺服器的響應頭和其他外部輸入的解析也很簡單,這可能會有不良後果。它沒有完整地實現 HTTP/1.x; 僅接受某些’預想’的響應格式。 strstr(3)的頻繁使用可能會帶來效能問題,即你可能是在測試ab而不是伺服器的效能。

引數很多,一般我們用 -c 和 -n 引數就可以了。例如:

# ab -c 5000 -n 600 http://127.0.0.1/index.php

ApacheBench用法詳解:

Linux系統,一般安裝好Apache後可以直接執行;
# ab -n 4000 -c 1000 http://www.ha97.com/

如果是Win系統下,開啟cmd命令列視窗,cd到apache安裝目錄的bin目錄下;

-n後面的4000代表總共發出4000個請求;-c後面的1000表示採用1000個併發(模擬1000個人同時訪問),後面的網址表示測試的目標URL。

稍等一會得到類似如下顯示結果:

結果分析:

This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.80.157 (be patient)
Completed 400 requests
Completed 800 requests
Completed 1200 requests
Completed 1600 requests
Completed 2000 requests
Completed 2400 requests
Completed 2800 requests
Completed 3200 requests
Completed 3600 requests
Completed 4000 requests
Finished 4000 requests

Server Software: Apache/2.2.15
Server Hostname: 192.168.80.157
Server Port: 80

Document Path: /phpinfo.php
#測試的頁面
Document Length: 50797 bytes
#頁面大小

Concurrency Level: 1000
#測試的併發數
Time taken for tests: 11.846 seconds
#整個測試持續的時間
Complete requests: 4000
#完成的請求數量
Failed requests: 0
#失敗的請求數量
Write errors: 0
Total transferred: 204586997 bytes
#整個過程中的網路傳輸量
HTML transferred: 203479961 bytes
#整個過程中的HTML內容傳輸量
Requests per second: 337.67 [#/sec] (mean)
#最重要的指標之一,相當於LR中的每秒事務數,後面括號中的mean表示這是一個平均值
Time per request: 2961.449 [ms] (mean)
#最重要的指標之二,相當於LR中的平均事務響應時間,後面括號中的mean表示這是一個平均值
Time per request: 2.961 [ms] (mean, across all concurrent requests)
#每個連線請求實際執行時間的平均值
Transfer rate: 16866.07 [Kbytes/sec] received
#平均每秒網路上的流量,可以幫助排除是否存在網路流量過大導致響應時間延長的問題
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 483 1773.5 11 9052
Processing: 2 556 1459.1 255 11763
Waiting: 1 515 1459.8 220 11756
Total: 139 1039 2296.6 275 11843
#網路上消耗的時間的分解,各項資料的具體演算法還不是很清楚

Percentage of the requests served within a certain time (ms)
50% 275
66% 298
75% 328
80% 373
90% 3260
95% 9075
98% 9267
99% 11713
100% 11843 (longest request)
#整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間,其中50%的使用者響應時間小於275毫秒,66%的使用者響應時間小於298毫秒,最大的響應時間小於11843毫秒。對於併發請求,cpu實際上並不是同時處理的,而是按照每個請求獲得的時間片逐個輪轉處理的,所以基本上第一個Time per request時間約等於第二個Time per request時間乘以併發請求數。

總結:在遠端對web伺服器進行壓力測試,往往效果不理想(因為網路延時過大),建議使用內網的另一臺或者多臺伺服器通過內網進行測試,這樣得出的資料,準確度會高很多。如果只有單獨的一臺伺服器,可以直接本地測試,比遠端測試效果要準確。

相關推薦

linuxab壓力測試工具

PS:網站效能壓力測試是效能調優過程中必不可少的一環。只有讓伺服器處在高壓情況下才能真正體現出各種設定所暴露的問題。Apache中有個自帶的,名為ab的程式,可以對Apache或其它型別的伺服器進行網站訪問壓力測試。 ApacheBench命令原理: ab命令會建立很多的

linuxab壓力測試工具

ab是apache自帶的壓力測試工具。ab是apachebench命令的縮寫。ab的原理:ab命令會建立多個併發訪問執行緒,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighth

linux下安裝ab壓力測試工具ab命令詳解

yum -y install httpd-tools ab -v 檢視ab版本 ab –help ab -n1000 -c 10 http://www.xxxx.com/ 以上命令-n訪問1000次, -c併發10個 ab壓力測試返回報文內容詳解: Server Soft

apache ab壓力測試工具---linux(ubuntu)

linux下開啟ab的man頁面,介紹如下: NAME ab - Apache HTTP server benchmarking tool SYNOPSIS ab [ -A auth-username:password ] [ -b wind

linuxab壓力測試

服務器 percent 文件的 src cpu 情況 zip min ear 1.ab的簡介 ab是apachebench命令的縮寫。 ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache服務器進行網站訪問壓力測試,也可以對或其它

apche ab 壓力測試工具

ons shadow cond cfb pre ext time 啟動 pro 首先需要安裝apche,地址: https://www.apachehaus.com/cgi-bin/download.plx下載完成後,需要解壓該壓縮包: 如何啟動ab工具:步驟1:打開cm

Apache ab壓力測試工具Window下載和用法詳解

ab是apache自帶的網站壓力測試工具。 使用起來非常的簡單和方便。 不僅僅是可以apache伺服器進行網站訪問壓力測試,還可以對其他型別的伺服器進行壓力測試。 比如nginx,tomcat,IIS等 首先當然是下載安裝了。 在這裡只講window下在下載安裝 官方下載地址:,(htt

【Apache】Apache ab壓力測試工具Window下載和用法詳解

enc ons 所有 The 產生 ima 腳本 數據 等待 ab是apache自帶的網站壓力測試工具。 使用起來非常的簡單和方便。 不僅僅是可以apache服務器進行網站訪問壓力測試,還可以對其他類型的服務器進行壓力測試。 比如nginx,tomcat,IIS等 首先當然

Nginx-效能優化-ab壓力測試工具

章節目錄 nginx 效能優化的點 當前系統性能的評估 ab 壓力測試工具使用 1.nginx 效能優化的點 當前系統結構瓶頸 可用方案:觀察指標-top、壓力測試-substatus、線上系統可以支撐的併發。 清除當前架構、當前業務,每個服務可以支撐多少併發,多少QPS。 瞭解業

AB 壓力測試工具ApacheBench ab壓測引數分析

首先通過uptime檢視當前負載情況, 通過watch uptime檢視實時負載,觀察負載下降情況 Apache服務自帶了應該用於壓力測試的工具ab(ApacheBench),對應做一些簡單的壓力測試,它完全能夠勝任,本文主要介紹,在centos中不安裝Apache的情況下,安裝ab 1,ab執行的

使用AB壓力測試工具進行系統壓力測試

Benchmarking 127.0.0.1 (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Com

ApacheBench(ab)壓力測試工具,安裝,用法,引數說明

一、Apache Bench簡介 ApacheBench 是 Apache 伺服器自帶的一個web壓力測試工具,簡稱ab。ab又是一個命令列工具,對發起負載的本機要求很低,根據ab命令可以建立很多的併發訪問執行緒,模擬多個訪問者同時對某一URL地址進行訪問,因此可以用來測試目標伺服器的負載壓

apache自帶的ab壓力測試工具用法詳解

ab是apache自帶的一個很好用的壓力測試工具,當安裝完apache的時候,就可以在bin下面找到ab 1 我們可以模擬100個併發使用者,對一個頁面傳送1000個請求 ./ab -n1000 -c100 http://www.baidu.com 其中-n代表請求數,

apache ab壓力測試工具帶引數

在網上找到了GET方式和POST方式帶引數的使用方法: 1. GET方法(我需要的,測試OK) ab -n 1 -c 1 “http://localhost:2020/welTo.do?pxtId=3000007937&superDo=jack” 字串使用雙引號就

linux環境ab網路壓力測試工具

http://blog.itpub.net/29773961/viewspace-1470071/ ab(apache bench)是apache下的一個工具,主要用於對web站點做壓力測試,基礎用法:其中-c選項為一次傳送的請求數量,及併發量。-n選項為請求次數。實驗測試

Linux下四款Web伺服器壓力測試工具(http_load、webbench、ab、siege)介紹

一、http_load程式非常小,解壓後也不到100Khttp_load以並行複用的方式執行,用以測試web伺服器的吞吐量與負載。但是它不同於大多數壓力測試工具,它可以以一個單一的程序執行,一般不會把客戶機搞死。還可以測試HTTPS類的網站請求。下載地址:http://sof

Ubuntu 16.04/CentOS 6.9安裝Apache壓力測試工具ab

方法 apt www. 文檔 請求 str blog pan program 說明: ab工具已經在Apache中包含,如果不想安裝Apache,那麽可以使用下面方法單獨安裝。 安裝: Ubuntu: sudo apt-get install apache2-u

Ubuntu 16.04下安裝Apache壓力測試工具ab

apt-get gpo 簡單使用 utils sta markdown 測試結果 壓力測試 安裝apache 安裝 sudo apt-get install apache2-utils 簡單使用 # 對http://www.baidu.com/進行100次請求,10個並發請

超實用壓力測試工具ab工具

用戶數 all ans ima 內容 請求 ins ron exce 一,簡介 ab是Apache超文本傳輸協議(HTTP)的性能測試工具。其設計意圖是描繪當前所安裝的Apache的執行性能,主要是顯示你安裝的Apache每秒可以處理多少個請求。 ab是apac

PHP測試與優化-- Apache自帶的壓力測試工具ab(apache bench) - 簡單使用

一、測試工具: Apache 壓力測試工具ab ab是針對apache的效能測試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安裝ab yum install httpd-tools 命令: