​ 34.9k star,推荐一款使用工具,wrk

简介: 【8月更文挑战第14天】

34.9k star,推荐一款使用工具,wrk

1 简介

wrk,一款http协议的压测工具,能够在单个多核 CPU 上运行时产生大量负载。它将多线程设计与可扩展的事件通知系统(如 epoll 和 kqueue)相结合。

image.png

高级功能可以通过lua脚本完成,可选的 LuaJIT 脚本可以执行 HTTP 请求生成、响应处理和自定义报告。

2 安装

github可以访问的直接到如下链接去下载就可以,目前支持linux

https://github.com/wg/wrk

github如果无法访问的话,可以后台直接私信

3 示例:

wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html

这将运行基准测试30秒,使用12个线程,并保持400个HTTP连接打开。

返回结果:

Running 30s test @ http://127.0.0.1:8080/index.html
  12 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   635.91us    0.89ms  12.92ms   93.69%
    Req/Sec    56.20k     8.07k   62.00k    86.54%
  22464657 requests in 30.00s, 17.76GB read
Requests/sec: 748868.53
Transfer/sec:    606.33MB

命令参数:

-c, --connections: total number of HTTP connections to keep open with
                   each thread handling N = connections/threads

-d, --duration:    duration of the test, e.g. 2s, 2m, 2h

-t, --threads:     total number of threads to use

-s, --script:      LuaJIT script, see SCRIPTING

-H, --header:      HTTP header to add to request, e.g. "User-Agent: wrk"

    --latency:     print detailed latency statistics

    --timeout:     record a timeout if a response is not received within
                   this amount of time.

4 注意项

运行 wrk 的机器必须具有足够数量的临时端口,并且应快速回收关闭的套接字。为了处理初始连接突发,服务器的侦听(2)积压工作应该大于正在测试的并发连接数。

仅更改 HTTP 方法、路径、添加标头或正文的用户脚本不会影响性能。每个请求的操作,特别是构建新的 HTTP 请求,以及使用 response() 必然会减少可以生成的负载量。

注:如需转载,须保留文首公众号名片,其它行为一律视为非授权转载。

相关文章
|
7月前
|
Python 容器
GitHub狂揽6700 Star,Python进阶必备的案例、技巧与工程实践
当下是 Python 急剧发展的时代,越来越多的人开始学习和使用Pyhon,而大家也遇到了各种问题。这份手册清晰、细致地介绍了 Python 代码应该遵循的编程风格,并解释了背后的原理和机制。
|
8月前
|
PHP
​小课堂 -- sqli-lab环境
​小课堂 -- sqli-lab环境
33 0
|
8月前
|
语音技术
如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码
最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该如何开始? 本次我们以Bert-vits2项目为例子,分享正确提交PR(Pull Requests)的方式。
|
8月前
|
Go
Go命令行解析神器入门 - 10分钟上手flag包
Go命令行解析神器入门 - 10分钟上手flag包
201 0
|
算法 安全 Go
基于TOTP算法的Github两步验证2FA(双因子)机制Python3.10/Golang1.21实现
双因子登录说白了就是通过第三方设备证明"你是你自己"的一个措施,Github官方推荐在移动端下载1Password、Authy、Microsoft Authenticator等APP来通过扫码进行验证,其实大可不必如此麻烦,本次我们通过Python/Golang代码来实现双因子登录验证。
基于TOTP算法的Github两步验证2FA(双因子)机制Python3.10/Golang1.21实现
|
Java 程序员 编译器
初窥门径代码起手,Go lang1.18入门精炼教程,由白丁入鸿儒,首次运行golang程序EP01
前文再续,书接上回,前一篇:[兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00](https://v3u.cn/a_id_222),我们搭建起了Go lang1.18的开发运行环境,接着就可以运行第一个Go lang1.18程序了,让我们整装待发,开启Go lang1.18的处女航。
初窥门径代码起手,Go lang1.18入门精炼教程,由白丁入鸿儒,首次运行golang程序EP01
|
网络安全 开发工具 git
如何使用git命令在github上提取自己的第一个pr
如何使用git命令在github上提取自己的第一个pr
如何使用git命令在github上提取自己的第一个pr
uiu
|
开发工具 git
我的Go+语言初体验——一次在GO+教程仓库上提交PR的经历
我的Go+语言初体验——一次在GO+教程仓库上提交PR的经历
uiu
146 0
我的Go+语言初体验——一次在GO+教程仓库上提交PR的经历
|
存储 开发工具 开发者
GitHub Desktop 3.0:帮你更好地整合 pull requests
GitHub Desktop 3.0:帮你更好地整合 pull requests
276 0
GitHub Desktop 3.0:帮你更好地整合 pull requests