溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HTTP服務(wù)壓力測(cè)試工具及相關(guān)術(shù)語(yǔ)是什么

發(fā)布時(shí)間:2022-04-16 15:40:21 來(lái)源:億速云 閱讀:330 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“HTTP服務(wù)壓力測(cè)試工具及相關(guān)術(shù)語(yǔ)是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

壓測(cè)相關(guān)術(shù)語(yǔ)

  • 響應(yīng)時(shí)間(RT) :指系統(tǒng)對(duì)請(qǐng)求作出響應(yīng)的時(shí)間.

  • 吞吐量(Throughput) :指系統(tǒng)在單位時(shí)間內(nèi)處理請(qǐng)求的數(shù)量

  • QPS每秒查詢率(Query Per Second) :“每秒查詢率”,是一臺(tái)服務(wù)器每秒能夠響應(yīng)的查詢次數(shù),是對(duì)一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)。

  • TPS(TransactionPerSecond):每秒鐘系統(tǒng)能夠處理的交易或事務(wù)的數(shù)量

  • 并發(fā)連接數(shù):某個(gè)時(shí)刻服務(wù)器所接受的請(qǐng)求總數(shù)

壓力測(cè)試工具

ab

ab全稱Apache Bench,是Apache自帶的性能測(cè)試工具。使用這個(gè)工具,只須指定同時(shí)連接數(shù)、請(qǐng)求數(shù)以及URL,即可測(cè)試網(wǎng)站或網(wǎng)站程序的性能。

通過(guò)ab發(fā)送請(qǐng)求模擬多個(gè)訪問(wèn)者同時(shí)對(duì)某一URL地址進(jìn)行訪問(wèn),可以得到每秒傳送字節(jié)數(shù)、每秒處理請(qǐng)求數(shù)、每請(qǐng)求處理時(shí)間等統(tǒng)計(jì)數(shù)據(jù)。

命令格式:

ab [options] [http://]hostname[:port]/path

常用參數(shù)如下:

-n requests 總請(qǐng)求數(shù)
-c concurrency 一次產(chǎn)生的請(qǐng)求數(shù),可以理解為并發(fā)數(shù)
-t timelimit 測(cè)試所進(jìn)行的最大秒數(shù), 可以當(dāng)做請(qǐng)求的超時(shí)時(shí)間
-p postfile 包含了需要POST的數(shù)據(jù)的文件
-T content-type POST數(shù)據(jù)所使用的Content-type頭信息

更多參數(shù)請(qǐng)查看官方文檔。

例如測(cè)試某個(gè)GET請(qǐng)求接口:

ab -n 10000 -c 100 -t 10 "http://127.0.0.1:8080/api/v1/posts?size=10"

測(cè)試POST請(qǐng)求接口:

ab -n 10000 -c 100 -t 10 -p post.json -T "application/json" "http://127.0.0.1:8080/api/v1/post"

wrk

wrk是一款開源的HTTP性能測(cè)試工具,它和上面提到的ab同屬于HTTP性能測(cè)試工具,它比ab功能更加強(qiáng)大,可以通過(guò)編寫lua腳本來(lái)支持更加復(fù)雜的測(cè)試場(chǎng)景。

Mac下安裝:

brew install wrk

常用命令參數(shù):

-c --conections:保持的連接數(shù)
-d --duration:壓測(cè)持續(xù)時(shí)間(s)
-t --threads:使用的線程總數(shù)
-s --script:加載lua腳本
-H --header:在請(qǐng)求頭部添加一些參數(shù)
--latency 打印詳細(xì)的延遲統(tǒng)計(jì)信息
--timeout 請(qǐng)求的最大超時(shí)時(shí)間(s)

使用示例:

wrk -t8 -c100 -d30s --latency http://127.0.0.1:8080/api/v1/posts?size=10

輸出結(jié)果:

Running 30s test @ http://127.0.0.1:8080/api/v1/posts?size=10
  8 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    14.55ms    2.02ms  31.59ms   76.70%
    Req/Sec   828.16     85.69     0.97k    60.46%
  Latency Distribution
     50%   14.44ms
     75%   15.76ms
     90%   16.63ms
     99%   21.07ms
  198091 requests in 30.05s, 29.66MB read
Requests/sec:   6592.29
Transfer/sec:      0.99MB

go-wrk

go-wrk是Go語(yǔ)言版本的wrk,Windows同學(xué)可以使用它來(lái)測(cè)試,使用如下命令來(lái)安裝go-wrk

go get github.com/adeven/go-wrk

使用方法同wrk類似,基本格式如下:

go-wrk [flags] url

常用的參數(shù):

-H="User-Agent: go-wrk 0.1 bechmark\nContent-Type: text/html;": 由'\n'分隔的請(qǐng)求頭
-c=100: 使用的最大連接數(shù)
-k=true: 是否禁用keep-alives
-i=false: if TLS security checks are disabled
-m="GET": HTTP請(qǐng)求方法
-n=1000: 請(qǐng)求總數(shù)
-t=1: 使用的線程數(shù)
-b="" HTTP請(qǐng)求體
-s="" 如果指定,它將計(jì)算響應(yīng)中包含搜索到的字符串s的頻率

執(zhí)行測(cè)試:

go-wrk -t=8 -c=100 -n=10000 "http://127.0.0.1:8080/api/v1/posts?size=10"

輸出結(jié)果:

==========================BENCHMARK==========================
URL:                            http://127.0.0.1:8080/api/v1/posts?size=10
Used Connections:               100
Used Threads:                   8
Total number of calls:          10000
===========================TIMINGS===========================
Total time passed:              2.74s
Avg time per request:           27.11ms
Requests per second:            3644.53
Median time per request:        26.88ms
99th percentile time:           39.16ms
Slowest time for request:       45.00ms
=============================DATA=============================
Total response body sizes:              340000
Avg response body per request:          34.00 Byte
Transfer rate per second:               123914.11 Byte/s (0.12 MByte/s)
==========================RESPONSES==========================
20X Responses:          10000   (100.00%)
30X Responses:          0       (0.00%)
40X Responses:          0       (0.00%)
50X Responses:          0       (0.00%)
Errors:                 0       (0.00%)

“HTTP服務(wù)壓力測(cè)試工具及相關(guān)術(shù)語(yǔ)是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI