web伺服器效能測試

lldhsds發表於2024-06-10

web伺服器效能測試

記錄使用Apache-bench、http_load、httperf等工具測試web伺服器的效能。

1. ab測試

# CentOS安裝
$ yum -y install httpd-tools

# Ubuntu安裝
$ sudo apt-get install apache2-utils

# 測試,-n 訪問的總次數,-c 訪問的併發量
$ ab -n 1000000 -c 100 http://x.x.x.x/

windosws版本:下載連結

2. http_load測試

2.1 安裝

# 下載安裝
$ wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
$ tar xzvf http_load-12mar2006.tar.gz
$ cd http_load-12mar2006/
$ sudo make && sudo make install

2.2 測試過程

  1. 建立text.txt,寫入待測試的url
    http://x.x.x.x:xx/index.html

  2. 執行測試:
    http_load -parallel 10 -seconds 10 test.txt

其中-parallel後面跟的是併發數,-seconds後面跟的是執行時間,所以這段話的意思是以10個併發來訪問該路徑10秒鐘,訪問完畢後會返回一些資訊。

# 測試示例
$ http_load -parallel 10 -seconds 10 text.txt
160182 fetches, 10 max parallel, 7.7416e+08 bytes, in 10.0001 seconds
4833 mean bytes/connection
16018 fetches/sec, 7.7415e+07 bytes/sec
msecs/connect: 0.135117 mean, 0.794 max, 0.023 min
msecs/first-response: 0.312969 mean, 28.634 max, 0.099 min
HTTP response codes:
  code 200 -- 160182

3. httperf測試

Httperf 比 ab 更強大,能測試出 web 服務能承載的最大服務量及發現潛在問題;比如:記憶體使用、穩定性。最大優勢:可以指定規律進行壓力測試,模擬真實環境。

# 映象源安裝
$ sudo apt-get install httperf 

# 編譯安裝
$ wget https://fossies.org/linux/www/old/httperf-0.9.0.tar.gz
$ tar zxvf httperf-0.9.0.tar.gz
$ cd httperf-0.9.0
$ sudo ./configure
$ sudo make && sudo make install
$ httperf --hog --server=x.x.x.x --uri=/index.html --num-conns=10000 --wsess=10,10,0.1
引數說明:
• --hog:讓 httperf 儘可能多產生連線,httperf 會根據硬體配置,有規律的產生訪問連線;
• --num-conns:連線數量,總髮起 10000 請求;
• --wsess:使用者開啟網頁時間規律模擬,第一個10表示產生10個會話連線,第二個10表示每個會話連線進行10次請求,0.1表示每個會話連線請求之間的間隔時間/s。

# 測試執行
$ httperf --hog --server=127.0.0.1 --uri=/index.html --num-conns=1000 --wsess=10,10,0.1
httperf --hog --client=0/1 --server=127.0.0.1 --port=80 --uri=/index.html --send-buffer=4096 --recv-buffer=16384 --wsess=10,10,0.100
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
Maximum connect burst length: 1

Total: connections 10 requests 100 replies 100 test-duration 9.089 s

Connection rate: 1.1 conn/s (908.9 ms/conn, <=2 concurrent connections)
Connection time [ms]: min 908.9 avg 908.9 max 909.0 median 908.5 stddev 0.0
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 10.000

Request rate: 11.0 req/s (90.9 ms/req)
Request size [B]: 72.0

Reply rate [replies/s]: min 11.0 avg 11.0 max 11.0 stddev 0.0 (1 samples)
Reply time [ms]: response 0.2 transfer 0.0
Reply size [B]: header 240.0 content 4833.0 footer 0.0 (total 5073.0)
Reply status: 1xx=0 2xx=100 3xx=0 4xx=0 5xx=0

CPU time [s]: user 3.83 system 5.26 (user 42.2% system 57.8% total 100.0%)
Net I/O: 55.3 KB/s (0.5*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

Session rate [sess/s]: min 1.00 avg 1.10 max 1.00 stddev 0.00 (10/10)
Session: avg 1.00 connections/session
Session lifetime [s]: 0.9
Session failtime [s]: 0.0
Session length histogram: 0 0 0 0 0 0 0 0 0 0 10

倉庫地址:httperf

相關文章