性能测试工具——wrk的安装与使用

本文介绍了wrk这款开源性能测试工具,它相比ab功能更强大,利用高性能I/O机制实现高并发。在Linux或macOS环境下安装wrk,通过编译源码完成。测试示例展示了如何使用wrk进行压力测试,关注线程数、连接数、超时时间和持续时间等参数。wrk的Requests/sec(QPS)是评估应用吞吐量的重要指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

想和大家来聊聊性能测试,聊到了性能测试必须要说的是性能测试中的工具,在这些工具中我今天主要给大家介绍wrk。

​介绍

wrk是一款开源的性能测试工具 ,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以支持lua脚本来创建复杂的测试场景。

wrk 的一个很好的特性就是能用很少的线程压出很大的并发量, 原因是它使用了一些操作系统特定的高性能 I/O 机制, 比如 select, epoll, kqueue 等。 其实它是复用了 redis 的 ae 异步事件驱动框架. 确切的说 ae 事件驱动框架并不是 redis 发明的, 它来自于 Tcl的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用,而更多的被大家所熟知。

安装

wrk只能运行于 Unix 类的系统上,也只能在这些系统上便宜,所以我们需要一个Linux或者macOs。

不得不说,使用了 Win10之后方便很多。

必备条件:

  • Win10 RS及以上版本

  • 启用Ubuntu子系统

1、Win10 系统通过bash命令,切换到Ubuntu子系统。 然后需要安装一下编译工具,通过运行下面命令来安装工具:

# 安装 make 工具
sudo apt-get install make

# 安装 gcc编译环境
sudo apt-get install build-essential
安装 gcc 编译环境的时候最好挂一下VPN,速度会快些。

2、安装完成之后使用 git 下载 wrk 的源码到本地。

3、切换到git的wrk目录,然后使用make命令:

cd /mnt/盘符/wrk目录

make

编译完成之后,目录下面会多一个 wrk 的文件。

测试

使用以下命令来测试一下:

./wrk -c 1 -t 1 -d 1 http://www.baidu.com

​简单说一下wrk里面各个参数什么意思?

  • -t 需要模拟的线程数

  • -c 需要模拟的连接数

  • --timeout 超时的时间

  • -d 测试的持续时间

结果:

  • Latency:响应时间

  • Req/Sec:每个线程每秒钟的完成的请求数

  • Avg:平均

  • Max:最大

  • Stdev:标准差

  • +/- Stdev: 正负一个标准差占比

标准差如果太大说明样本本身离散程度比较高. 有可能系统性能波动很大. 如果想看响应时间的分布情况可以加上--latency参数

我们的模拟测试的时候需要注意,一般线程数不宜过多,核数的2到4倍足够了。 多了反而会因为线程切换过多造成效率降低, 因为 wrk 不是使用每个连接一个线程的模型, 而是通过异步网络 I/O 提升并发量。 所以网络通信不会阻塞线程执行,这也是 wrk 可以用很少的线程模拟大量网路连接的原因。

在 wrk 的测试结果中,有一项为Requests/sec,我们一般称之为QPS(每秒请求数),这是一项压力测试的性能指标,通过这个参数我们可以看出应用程序的吞吐量。

总结

今天的分享就到这里了,喜欢的可以点赞评论收藏加关注哟,文中的源码有需要的可以在评论区留言哟。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值