偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

ab 命令詳解:Apache Bench 壓力測(cè)試工具使用指南(含安裝與實(shí)戰(zhàn))

開(kāi)發(fā)
ab 是 Apache Bench 的縮寫,是 Apache 提供的一個(gè)開(kāi)源壓力測(cè)試工具。本文將詳細(xì)介紹 ab 命令的功能、安裝方法、使用技巧以及結(jié)果分析。

在Web服務(wù)器性能調(diào)優(yōu)和系統(tǒng)壓力測(cè)試中,ab 命令是一個(gè)非常實(shí)用且高效的工具。它不僅可以對(duì) Apache 服務(wù)器進(jìn)行壓測(cè),還支持 Nginx、Tomcat、IIS 等主流 Web 服務(wù)器。本文將詳細(xì)介紹 ab 命令的功能、安裝方法、使用技巧以及結(jié)果分析。

ab的簡(jiǎn)介

ab 是 Apache Bench 的縮寫,是 Apache 提供的一個(gè)開(kāi)源壓力測(cè)試工具。其核心功能是模擬多用戶并發(fā)訪問(wèn)目標(biāo) URL,從而測(cè)試 Web 服務(wù)器的負(fù)載能力和響應(yīng)性能。

ab工作原理

ab命令會(huì)創(chuàng)建多個(gè)并發(fā)訪問(wèn)線程,模擬多個(gè)訪問(wèn)者同時(shí)對(duì)某一URL地址進(jìn)行訪問(wèn)。它的測(cè)試目標(biāo)是基于URL的,因此,它既可以用來(lái)測(cè)試Apache的負(fù)載壓力,也可以測(cè)試Nginx、Lighthttp、Tomcat、IIS等其它Web服務(wù)器的壓力。

注意:ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,它既不會(huì)占用很高CPU,也不會(huì)占用很多內(nèi)存。但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載,其原理類似CC攻擊。自己測(cè)試使用也需要注意,否則一次上太多的負(fù)載。可能造成目標(biāo)服務(wù)器資源耗完,嚴(yán)重時(shí)甚至導(dǎo)致死機(jī)。

安裝ab

如果你已經(jīng)安裝apache服務(wù)器,則不需要安裝。這個(gè)是apache自帶的工具。如果沒(méi)有可以使用yum或者apt命令安裝,具體安裝命令如下:

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

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

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并發(fā)數(shù)可以超過(guò) 20000 ,但是系統(tǒng)會(huì)阻止打開(kāi)文件的數(shù)量,因此我們還需要修改最大打開(kāi)的文件數(shù):

ulimit -n 65535	 #修改同時(shí)最大打開(kāi)的文件數(shù),此為臨時(shí)性的

如果不修改的話你的并發(fā)測(cè)試不能大于系統(tǒng)默認(rèn)的1024

ab的使用

ab壓測(cè)基本語(yǔ)法如下:

ab -n <總請(qǐng)求數(shù)> -c <并發(fā)數(shù)> <目標(biāo)URL>

ab命令選項(xiàng)詳解:

選項(xiàng)

作用

-n

在測(cè)試會(huì)話中所執(zhí)行的請(qǐng)求個(gè)數(shù)。默認(rèn)時(shí),僅執(zhí)行一個(gè)請(qǐng)求

-c

一次產(chǎn)生的請(qǐng)求個(gè)數(shù)。默認(rèn)是一次一個(gè)

-t

測(cè)試所進(jìn)行的最大秒數(shù)。其內(nèi)部隱含值是-n 50000,它可以使對(duì)服務(wù)器的測(cè)試限制在一個(gè)固定的總時(shí)間以內(nèi)。默認(rèn)時(shí),沒(méi)有時(shí)間限制。

-p

包含了需要POST的數(shù)據(jù)的文件

-P

對(duì)一個(gè)中轉(zhuǎn)代理提供BASIC認(rèn)證信任。用戶名和密碼由一個(gè):隔開(kāi),并以base64編碼形式發(fā)送。無(wú)論服務(wù)器是否需要(即, 是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送

-T

POST數(shù)據(jù)所使用的Content-type頭信息

-v

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

-V

顯示版本號(hào)并退出

-w

以HTML表的格式輸出結(jié)果。默認(rèn)時(shí),它是白色背景的兩列寬度的一張表

-i

執(zhí)行HEAD請(qǐng)求,而不是GET

-x

設(shè)置<table>屬性的字符串

-X

對(duì)請(qǐng)求使用代理服務(wù)器

-y

設(shè)置<tr>屬性的字符串

-z

設(shè)置<td>屬性的字符串

-C

對(duì)請(qǐng)求附加一個(gè)Cookie:行。其典型形式是name=value的一個(gè)參數(shù)對(duì),此參數(shù)可以重復(fù)

-H

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

-A

對(duì)服務(wù)器提供BASIC認(rèn)證信任。用戶名和密碼由一個(gè):隔開(kāi),并以base64編碼形式發(fā)送。無(wú)論服務(wù)器是否需要(即,是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送

-h

顯示使用方法

-d

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

-e

產(chǎn)生一個(gè)以逗號(hào)分隔的(CSV)文件,其中包含了處理每個(gè)相應(yīng)百分比的請(qǐng)求所需要(從1%到100%)的相應(yīng)百分比的(以微妙為單位)時(shí)間。由于這種格式已經(jīng)“二進(jìn)制化”,所以比’gnuplot’格式更有用

-g

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

-k

啟用HTTP KeepAlive功能,即在一個(gè)HTTP會(huì)話中執(zhí)行多個(gè)請(qǐng)求。默認(rèn)時(shí),不啟用KeepAlive功能

-q

如果處理的請(qǐng)求數(shù)大于150,ab每處理大約10%或者100個(gè)請(qǐng)求時(shí),會(huì)在stderr輸出一個(gè)進(jìn)度計(jì)數(shù)。此-q標(biāo)記可以抑制這些信息

-r

在遇到socket接收錯(cuò)誤后,不退出測(cè)試

示例:

假設(shè)要對(duì)本地Apache服務(wù)器的根路徑(http://localhost/)進(jìn)行壓力測(cè)試:

ab -n 1000 -c 10 http://localhost/
  • -n 1000:總共發(fā)送1000個(gè)請(qǐng)求
  • -c 10 : 并發(fā)用戶數(shù)為10(即同時(shí)發(fā)送10個(gè)請(qǐng)求)

ab測(cè)試結(jié)果說(shuō)明:

Server Software: nginx/1.6.2#測(cè)試目標(biāo)服務(wù)器使用的WEB服務(wù)和版本
Server Hostname: 192.168.1.108#測(cè)試目標(biāo)服務(wù)器的地址
Server Port: 80#測(cè)試目標(biāo)服務(wù)器的端口
Document Path: /				#測(cè)試目標(biāo)服務(wù)器的路徑
Document Length: 41005 bytes 			#請(qǐng)求的頁(yè)面大小
Concurrency Level: 20 			#并發(fā)量
Time taken for tests: 1180.733 seconds 	#測(cè)試總共耗時(shí)
Complete requests: 50000 			#完成的請(qǐng)求
Failed requests: 0 				#失敗的請(qǐng)求
Write errors: 0 				#錯(cuò)誤
Total transferred: 2067550000 bytes 		#總共傳輸數(shù)據(jù)量
HTML transferred: 2050250000 bytes#所有請(qǐng)求的響應(yīng)數(shù)據(jù)中正文數(shù)據(jù)的總和,也就是減去了Total transferred中HTTP響應(yīng)數(shù)據(jù)中的頭信息的長(zhǎng)度
Requests per second: 42.35 [#/sec] (mean) 	#每秒鐘的請(qǐng)求量。(僅僅是測(cè)試頁(yè)面的響應(yīng)速度)
Time per request: 472.293 [ms] (mean) 	#等于 Time taken for tests/(complete requests/concurrency level) 即平均請(qǐng)求等待時(shí)間(用戶等待的時(shí)間)
Time per request: 23.615 [ms] (mean, across all concurrent requests) #等于 Time taken for tests/Complete requests 即服務(wù)器平均請(qǐng)求響應(yīng)時(shí)間 在并發(fā)量為1時(shí) 用戶等待時(shí)間相同
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)

服務(wù)器資源監(jiān)控

在測(cè)試過(guò)程中,可以通過(guò)以下命令監(jiān)控服務(wù)器資源:

top# 查看CPU和內(nèi)存使用情況
htop# 更友好的資源監(jiān)控工具(需安裝:`sudo apt install htop`)
iftop  # 查看網(wǎng)絡(luò)帶寬使用情況(需安裝:`sudo apt install iftop`)

ab的局限性

ab是單線程工具,適合簡(jiǎn)單的HTTP請(qǐng)求測(cè)試。對(duì)于復(fù)雜的測(cè)試場(chǎng)景(如HTTPS、POST請(qǐng)求、Cookie等),可以考慮使用更專業(yè)的工具,如:

  • wrk:高性能的HTTP基準(zhǔn)測(cè)試工具
  • JMeter:支持多種協(xié)議和復(fù)雜測(cè)試場(chǎng)景
  • Locust:分布式壓力測(cè)試工具
責(zé)任編輯:趙寧寧 來(lái)源: 編程經(jīng)驗(yàn)共享
相關(guān)推薦

2016-09-14 11:09:06

Web工具運(yùn)維

2010-05-27 18:48:20

Linux壓力測(cè)試工具

2015-07-27 18:19:22

Linuxstress參數(shù)

2010-06-07 17:46:46

Linux壓力測(cè)試工具

2012-02-08 14:16:55

Apache

2009-05-18 08:52:17

壓力測(cè)試Rpplet測(cè)試

2010-05-17 13:16:23

MySQL壓力測(cè)試工具

2010-06-03 17:27:36

Hadoop命令

2025-06-10 08:20:00

IDEA編碼開(kāi)發(fā)

2012-02-02 09:12:16

JavaJMeter

2025-05-12 08:14:39

2012-02-09 09:35:46

NUnit

2010-06-04 16:07:09

Linux 性能測(cè)試工

2019-03-15 09:17:22

Web測(cè)試工具

2011-10-09 11:00:17

2012-06-25 14:30:48

Web

2022-09-23 17:26:04

VeleroKubernetes

2022-09-29 09:07:08

DataGrip數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)庫(kù)

2010-06-13 17:16:15

Linux性能測(cè)試工具

2014-08-11 16:39:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)