成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ab 命令詳解:Apache Bench 壓力測試工具使用指南(含安裝與實戰)

開發
ab 是 Apache Bench 的縮寫,是 Apache 提供的一個開源壓力測試工具。本文將詳細介紹 ab 命令的功能、安裝方法、使用技巧以及結果分析。

在Web服務器性能調優和系統壓力測試中,ab 命令是一個非常實用且高效的工具。它不僅可以對 Apache 服務器進行壓測,還支持 Nginx、Tomcat、IIS 等主流 Web 服務器。本文將詳細介紹 ab 命令的功能、安裝方法、使用技巧以及結果分析。

ab的簡介

ab 是 Apache Bench 的縮寫,是 Apache 提供的一個開源壓力測試工具。其核心功能是模擬多用戶并發訪問目標 URL,從而測試 Web 服務器的負載能力和響應性能。

ab工作原理

ab命令會創建多個并發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基于URL的,因此,它既可以用來測試Apache的負載壓力,也可以測試Nginx、Lighthttp、Tomcat、IIS等其它Web服務器的壓力。

注意:ab命令對發出負載的計算機要求很低,它既不會占用很高CPU,也不會占用很多內存。但卻會給目標服務器造成巨大的負載,其原理類似CC攻擊。自己測試使用也需要注意,否則一次上太多的負載??赡茉斐赡繕朔掌髻Y源耗完,嚴重時甚至導致死機。

安裝ab

如果你已經安裝apache服務器,則不需要安裝。這個是apache自帶的工具。如果沒有可以使用yum或者apt命令安裝,具體安裝命令如下:

# CentOS / RHEL 安裝方式
sudo yum -y install httpd-tools
#Ubuntu / Debian 安裝方式
sudo apt update
sudo apt install apache2-utils

注意:這種安裝方式最大只能并發 20000 個。如果想突破限制必須是源碼安裝,下面我們以centos為例給大家介紹一下源碼裝全過程:

yum -y install gcc gcc-c++ automake apr apr-util pcre apr-devel apr-util-devel pcre-devel		#安裝httpd依賴
wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.43.tar.gz		#下載httpd包
tar -zxvf httpd-2.4.43.tar.gz -C /usr/src		#解壓httpd包
cd /usr/src/httpd-2.4.43					#切換目錄到httpd包所在
vim support/ab.c						#修改ab的源代碼,修改第282行:#define MAX_CONCURRENCY 100000
./configure --prefix=/usr/local/httpd			#編譯
make && make install							#安裝
ln -s /usr/local/httpd/bin/* /usr/bin			#做軟鏈接

雖然同修改源碼的方式,使ab并發數可以超過 20000 ,但是系統會阻止打開文件的數量,因此我們還需要修改最大打開的文件數:

ulimit -n 65535	 #修改同時最大打開的文件數,此為臨時性的

如果不修改的話你的并發測試不能大于系統默認的1024

ab的使用

ab壓測基本語法如下:

ab -n <總請求數> -c <并發數> <目標URL>

ab命令選項詳解:

選項

作用

-n

在測試會話中所執行的請求個數。默認時,僅執行一個請求

-c

一次產生的請求個數。默認是一次一個

-t

測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對服務器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。

-p

包含了需要POST的數據的文件

-P

對一個中轉代理提供BASIC認證信任。用戶名和密碼由一個:隔開,并以base64編碼形式發送。無論服務器是否需要(即, 是否發送了401認證需求代碼),此字符串都會被發送

-T

POST數據所使用的Content-type頭信息

-v

設置顯示信息的詳細程度-4或更大值會顯示頭信息,3或更大值可以顯示響應代碼(404,200等),2或更大值可以顯示警告和其他信息

-V

顯示版本號并退出

-w

以HTML表的格式輸出結果。默認時,它是白色背景的兩列寬度的一張表

-i

執行HEAD請求,而不是GET

-x

設置<table>屬性的字符串

-X

對請求使用代理服務器

-y

設置<tr>屬性的字符串

-z

設置<td>屬性的字符串

-C

對請求附加一個Cookie:行。其典型形式是name=value的一個參數對,此參數可以重復

-H

對請求附加額外的頭信息。此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值的對(“Accept-Encoding:zip/zop;8bit”)

-A

對服務器提供BASIC認證信任。用戶名和密碼由一個:隔開,并以base64編碼形式發送。無論服務器是否需要(即,是否發送了401認證需求代碼),此字符串都會被發送

-h

顯示使用方法

-d

不顯示"percentage served within XX [ms] table"的消息(為以前的版本提供支持)

-e

產生一個以逗號分隔的(CSV)文件,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙為單位)時間。由于這種格式已經“二進制化”,所以比’gnuplot’格式更有用

-g

把所有測試結果寫入一個’gnuplot’或者TSV(以Tab分隔的)文件。此文件可以方便地導入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行為標題

-k

啟用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。默認時,不啟用KeepAlive功能

-q

如果處理的請求數大于150,ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。此-q標記可以抑制這些信息

-r

在遇到socket接收錯誤后,不退出測試

示例:

假設要對本地Apache服務器的根路徑(http://localhost/)進行壓力測試:

ab -n 1000 -c 10 http://localhost/
  • -n 1000:總共發送1000個請求
  • -c 10 : 并發用戶數為10(即同時發送10個請求)

ab測試結果說明:

Server Software: nginx/1.6.2#測試目標服務器使用的WEB服務和版本
Server Hostname: 192.168.1.108#測試目標服務器的地址
Server Port: 80#測試目標服務器的端口
Document Path: /				#測試目標服務器的路徑
Document Length: 41005 bytes 			#請求的頁面大小
Concurrency Level: 20 			#并發量
Time taken for tests: 1180.733 seconds 	#測試總共耗時
Complete requests: 50000 			#完成的請求
Failed requests: 0 				#失敗的請求
Write errors: 0 				#錯誤
Total transferred: 2067550000 bytes 		#總共傳輸數據量
HTML transferred: 2050250000 bytes#所有請求的響應數據中正文數據的總和,也就是減去了Total transferred中HTTP響應數據中的頭信息的長度
Requests per second: 42.35 [#/sec] (mean) 	#每秒鐘的請求量。(僅僅是測試頁面的響應速度)
Time per request: 472.293 [ms] (mean) 	#等于 Time taken for tests/(complete requests/concurrency level) 即平均請求等待時間(用戶等待的時間)
Time per request: 23.615 [ms] (mean, across all concurrent requests) #等于 Time taken for tests/Complete requests 即服務器平均請求響應時間 在并發量為1時 用戶等待時間相同
Transfer rate: 1710.03 [Kbytes/sec] received #平均每秒多少K,即帶寬速率
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 18.5 0 1001
Processing: 38 471 534.1 155 9269
Waiting: 37 456 524.6 147 9259
Total: 40 472 534.5 155 9269
Percentage of the requests served within a certain time (ms)
50% 155
66% 571
75% 783
80% 871
90% 1211
95% 1603
98% 1839
99% 2003
100% 9269 (longest request)

服務器資源監控

在測試過程中,可以通過以下命令監控服務器資源:

top# 查看CPU和內存使用情況
htop# 更友好的資源監控工具(需安裝:`sudo apt install htop`)
iftop  # 查看網絡帶寬使用情況(需安裝:`sudo apt install iftop`)

ab的局限性

ab是單線程工具,適合簡單的HTTP請求測試。對于復雜的測試場景(如HTTPS、POST請求、Cookie等),可以考慮使用更專業的工具,如:

  • wrk:高性能的HTTP基準測試工具
  • JMeter:支持多種協議和復雜測試場景
  • Locust:分布式壓力測試工具
責任編輯:趙寧寧 來源: 編程經驗共享
相關推薦

2016-09-14 11:09:06

Web工具運維

2010-05-27 18:48:20

Linux壓力測試工具

2015-07-27 18:19:22

Linuxstress參數

2010-06-07 17:46:46

Linux壓力測試工具

2012-02-08 14:16:55

Apache

2010-05-17 13:16:23

MySQL壓力測試工具

2009-05-18 08:52:17

壓力測試Rpplet測試

2010-06-03 17:27:36

Hadoop命令

2012-02-02 09:12:16

JavaJMeter

2025-06-10 08:20:00

IDEA編碼開發

2025-05-12 08:14:39

2012-02-09 09:35:46

NUnit

2010-06-04 16:07:09

Linux 性能測試工

2011-10-09 11:00:17

2019-03-15 09:17:22

Web測試工具

2012-06-25 14:30:48

Web

2022-09-23 17:26:04

VeleroKubernetes

2022-09-29 09:07:08

DataGrip數據倉庫數據庫

2010-06-13 17:16:15

Linux性能測試工具

2014-08-11 16:39:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线剧情 | 99久久日韩精品免费热麻豆美女 | 国产一二区在线 | 亚洲免费在线 | 国产精品大片 | 日韩一区二区三区四区五区六区 | 九九精品在线 | 国产成人精品综合 | 全部免费毛片在线播放网站 | 一区二区在线 | 国产精品视频网站 | 97精品超碰一区二区三区 | 国产精品久久久久久久一区探花 | 亚洲欧美精品国产一级在线 | 99久久精品免费看国产小宝寻花 | 日韩中文字幕免费在线观看 | 亚洲综合五月天婷婷 | 国产欧美视频一区 | 免费亚洲一区二区 | 久久久久久av | 精品久久久久久一区二区 | 一级黄色夫妻生活 | 日韩中文字幕一区二区 | 成人不卡在线 | 91免费看片 | 久久精品免费 | 欧美精品在线观看 | 精品久久九 | 欧美日本一区二区 | 久草热视频 | 亚洲国产精品日韩av不卡在线 | 欧美综合一区二区三区 | 国产视频二区 | 国产在线二区 | 欧美日韩一区在线观看 | 免费久久久 | 天堂亚洲| 日韩精品在线观看视频 | 欧美一区二区三区在线 | 九九爱这里只有精品 | 国产精品av久久久久久久久久 |