网站建设合同书(范本),wordpress+登陆图标,公司网站建设需要要求什么,企业网站怎样做优化文章目录 1.简介2.特点3.格式4.选项5.示例参考文献 1.简介
wrk 是一个现代的 HTTP 压力测试工具#xff0c;利用现代多线程技术和高效的网络 I/O 处理#xff0c;能够生成大量的并发请求#xff0c;用以测试 HTTP 服务器的性能。
它是作为一种更现代的压力测试工具而设计的… 文章目录 1.简介2.特点3.格式4.选项5.示例参考文献 1.简介
wrk 是一个现代的 HTTP 压力测试工具利用现代多线程技术和高效的网络 I/O 处理能够生成大量的并发请求用以测试 HTTP 服务器的性能。
它是作为一种更现代的压力测试工具而设计的旨在替代旧的工具如 Apache HTTP server benchmarking tool (ab)。
wrk 非常适合于高负载测试和性能分析能够在保持高并发的同时提供准确和详细的性能测试结果包括吞吐率、延迟和错误率等。
wrk 是由 Will Glozer 开发的并首次发布于 2012 年。
2.特点
wrk 的设计重点是易用性、效率和灵活性。它通过简单的命令行界面提供强大的功能同时支持 LuaJIT 脚本让用户能够编写自定义的测试脚本来模拟复杂的请求场景。
wrk具备如下特性 轻量级性能测试工具安装简单。 学习成本低。 基于异步事件驱动框架单机支持高并发。 单机压测工具无分布式施压能力。 只支持HTTP协议。 无可视化界面不支持流程编排、断言等能力无法满足复杂压测需求。
3.格式
wrk 的基本命令格式如下
wrk [OPTIONS] URL其中 URL 是必须指定的表示你想要测试的 HTTP 服务的网址。
4.选项
wrk 提供了多种选项来调整压力测试的各个方面
-c, --connections N打开的连接总数。
-d, --duration T测试持续时间例如 2s, 2m, 2h。
-t, --threads N使用的线程数。
-s, --script FILE指定 Lua 脚本来自定义请求。
-H, --header H添加额外的 HTTP 头到请求中。
--latency打印出详细的延迟统计信息。
--timeout T设置套接字和 HTTP 读取超时时间。
-v, --version打印版本信息数字参数可能包含 SI 单位1k、1M、1G。时间参数可能包含时间单位2s、2m、2h。
关于线程数并不是设置的越大压测效果越好线程设置过大反而会导致线程切换过于频繁效果降低一般来说推荐设置成压测机器 CPU 核心数的 2 倍到 4 倍就行了。
5.示例
1GET 请求。
100 个请求分 10 个线程压 10 秒。
wrk -c100 -t10 -d10s --latency http://localhost:5000/test_get控制台输出
Running 10s test http://localhost:5000/test_get10 threads and 100 connectionsThread Stats Avg Stdev Max /- StdevLatency 201.71ms 58.06ms 451.62ms 79.16%Req/Sec 27.94 10.18 70.00 73.70%Latency Distribution50% 196.82ms75% 228.07ms90% 261.79ms99% 394.08ms2817 requests in 10.10s, 473.18KB read
Requests/sec: 278.94
Transfer/sec: 46.86KB2POST 请求。
使用 test_post.lua 脚本。
wrk -c100 -t10 -d10s -s test_post.lua --latency http://localhost:5000/test_postLua 脚本
wrk.method POST
wrk.headers[Content-Type] application/json
wrk.body {k1:1,k2:2}控制台输出
Running 10s test http://localhost:5000/test_post10 threads and 100 connectionsThread Stats Avg Stdev Max /- StdevLatency 188.49ms 60.76ms 352.02ms 67.50%Req/Sec 38.35 23.71 101.00 67.22%Latency Distribution50% 182.22ms75% 230.92ms90% 272.66ms99% 325.02ms3665 requests in 10.10s, 604.87KB read
Requests/sec: 362.77
Transfer/sec: 59.87KB注GET 请求同样可以使用 Lua 脚本。 参考文献
wg/wrk: Modern HTTP benchmarking tool 不同性能压测工具对比_性能测试(PTS) - 阿里云文档 性能测试工具wrk 使用教程- 犬小哈 wrk 性能测试工具详解 - 掘金