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

引言

     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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章