rewrk一個更現代的http框架基準測試實用程式

PetterLiu發表於2024-03-02

引言

rewrk一個更現代的http框架基準測試實用程式。HTTP基準測試(HTTP benchmarking)是一種測量和評估HTTP伺服器或應用程式效能指標的活動。其目的是在特定條件下模擬大量使用者請求,以測量伺服器或應用程式的響應能力、吞吐量、延遲等指標,從而評估其效能表現。HTTP基準測試通常使用專門的測試工具,如Apache Bench(ab)、JMeter、LoadRunner等,模擬多個客戶端同時向伺服器傳送請求,並測量伺服器的響應時間、併發處理能力等關鍵指標。透過這些測試,可以瞭解伺服器或應用程式在不同負載下的效能表現,並找出可能存在的效能瓶頸或問題。在進行HTTP基準測試時,需要設定適當的測試引數,如併發使用者數、請求型別、請求資料量等,以模擬真實的使用者行為。同時,還需要對測試結果進行分析和解讀,以瞭解伺服器或應用程式的效能瓶頸和最佳化方向。

快速上手

rewrk -h http://127.0.0.1:5000 -t 12 -c 60 -d 5s

Benchmarking 60 connections @ http://127.0.0.1:5000 for 5 seconds
  Latencies:
    Avg      Stdev    Min      Max    
    3.27ms   0.40ms   1.95ms   9.39ms
  Requests:
    Total:  91281  Req/Sec: 18227.81
  Transfer:
    Total: 1.13 MB Transfer Rate: 231.41 KB/Sec
     這個專案背後的動機來自開發人員對 TechEmpower等基準測試的隧道願景,(TechEmpower是一個Web Framework Benchmarks測試平臺,該平臺對世界上各大Web框架進行功能測試,並提供一個綜合排名。從2013年3月開始,這個平臺已經進行了18輪測試,參與框架的數量也從最初的24種增加到了659種。)這些基準測試使用名為 wrk 的基準測試工具.wrk 只處理一些 HTTP 規範,並且完全偏向於可以大量使用 HTTP/1 流水線的框架和伺服器,這在大多數現代瀏覽器或客戶端中不再啟用,這可能會在比較框架時給出一組非常不公平和不合理的統計資料,因為頂部的框架更擅長使用現在不常用的程序。基準測試器建立在 hyper 的客戶端 api 之上,並帶來了許多優勢和更現實的基準測試方法。
當前功能

支援 HTTP/1 和 HTTP/2

多平臺支援,在 Windows 上開發,但也可以在 Mac 和 Linux 上執行。


USAGE:
rewrk.exe [FLAGS] [OPTIONS] --duration <duration> --host <host>

FLAGS:
--help Prints help information
--http2 Set the client to use http2 only. (default is http/1) e.g. '--http2'
--pct Displays the percentile table after benchmarking.
-V, --version Prints version information

OPTIONS:
-c, --connections <connections> Set the amount of concurrent e.g. '-c 512' [default: 1]
-d, --duration <duration> Set the duration of the benchmark.
-h, --host <host> Set the host to bench e.g. '-h
http://127.0.0.1:5050'
-t, --threads <threads> Set the amount of threads to use e.g. '-t 12' [default: 1]

Rust環境安裝

rust

大家在安裝rust時,大多數同學是參考官方文件執行指令碼安裝,指令碼如下:

curl https://sh.rustup.rs -sSf | sh

但是因為某些原因,在國內執行上面 該指令碼會被牆掉,然後終端就一直沒有下載進度

➜ ~ curl https://sh.rustup.rs -sSf | sh info: downloading installer

  • 為了可以正常執行,可以配置下映象源,加速rust下載、安裝。終端配置如下命令:

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

  • 接著執行官方文件的下載指令碼:

curl https://sh.rustup.rs -sSf | sh

Cargo Install 使用 Cargo 安裝

cargo install rewrk --git https://github.com/ChillFish8/rewrk.git

CentOS安裝

除了gcc,還需要

yum install -y openssl-devel

從原始碼編譯

cargo build –release

clipboard

實踐

./rewrk -h http://172.21.44.1:18193/ws/logout -t 12 -c 60 -d 10s

Beginning round 1...

Benchmarking 60 connections @ http://172.21.44.1:18193/ws/logout for 10 second(s)

Latencies:

Avg Stdev Min Max

10.06ms 9.81ms 0.55ms 118.18ms

Requests:

Total: 59559 Req/Sec: 5955.74

Transfer:

Total: 18.18 MB Transfer Rate: 1.82 MB/Sec



今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 專案管理, 產品管管,團隊建設 有參考作用 , 您可能感興趣的文章:
領導人怎樣帶領好團隊
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
影片直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續整合/CD
網際網路電商購物車架構演變案例
網際網路業務場景下訊息佇列架構
網際網路高效研發團隊管理演進之一
訊息系統架構設計演進
網際網路電商搜尋架構演化之一
企業資訊化與軟體工程的迷思
企業專案化管理介紹
軟體專案成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
專案管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
網際網路資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之效能實時度量系統演變

如有想了解更多軟體設計與架構, 系統IT,企業資訊化, 團隊管理 資訊,請關注我的微信訂閱號:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。

相關文章