Linux wrk 安装详解

wrk 说明

安装

# 安装工具包的时候差不多有 90 个左右的子工具
sudo yum groupinstall 'Development Tools'
sudo yum install -y openssl-devel git
git clone --depth=1 https://github.com/wg/wrk.git wrk
cd wrk
make
# move the executable to somewhere in your PATH
sudo cp wrk /usr/local/bin
  • 查看帮助:wrk --help

使用

  • 启用 10 个线程,每个线程发起 100 个连接,持续 30 秒:wrk -t10 -c100 -d30s http://www.baidu.com
  • 最终报告:
Running 30s test @ http://www.baidu.com
  5 threads and 5 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    44.59ms   17.41ms 331.91ms   95.66%
    Req/Sec    23.11      5.77    30.00     57.04%
  3439 requests in 30.03s, 50.47MB read
  Socket errors: connect 0, read 10, write 0, timeout 0
Requests/sec:    114.52
Transfer/sec:      1.68MB

使用 lua 脚本(发送一个 post 请求)

  • 创建:vim /opt/post-wrk.lua
wrk.method = "POST"  
wrk.body   = "hms_user_id=222222&routing_key=ad.sys_user.add"  
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
  • 测试:wrk -t10 -c100 -d15s --script=/opt/post-wrk.lua --latency http://127.0.0.1:9090/websocket/api/send-by-user-id

其他说明

  • wrk 使用的是 HTTP/1.1,缺省开启的是长连接
  • 要测试短连接:wrk -H "Connection: Close" -c 100 -d 10 http://domain/path

资料

教程来源于Github,感谢judasn大佬的无私奉献,致敬!

技术教程推荐

技术领导力实战笔记 -〔TGO鲲鹏会〕

代码精进之路 -〔范学雷〕

深入拆解Tomcat & Jetty -〔李号双〕

SQL必知必会 -〔陈旸〕

全栈工程师修炼指南 -〔熊燚(四火)〕

雷蓓蓓的项目管理实战课 -〔雷蓓蓓〕

To B市场品牌实战课 -〔曹林〕

手把手教你玩音乐 -〔邓柯〕

AI绘画核心技术与实战 -〔南柯〕