网站首页 > 开源技术 正文
前言
想和大家来聊聊性能测试,聊到了性能测试必须要说的是性能测试中的工具,在这些工具中我今天主要给大家介绍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(每秒请求数),这是一项压力测试的性能指标,通过这个参数我们可以看出应用程序的吞吐量。
总结
今天的分享就到这里了,喜欢的可以点赞评论收藏加关注哟,文中的源码有需要的可以私信我“资料”获取哟。
猜你喜欢
- 2024-10-12 全职宝妈的我啊这肚子,阳康一过大了几圈
- 2024-10-12 佟丽娅称选手像易烊千玺,男方粉丝不干,饭圈太敏感会四面树敌吗
- 2024-10-12 马苏素颜开直播健身,穿健美裤大秀“木瓜臀”,女生都吃不下饭了
- 2024-10-12 熊黛林穿开叉礼服出席活动秀丰满上围大长腿,小肚腩却抢镜了
- 2024-10-12 周扬青林允合影曝光,“网红脸”一览无遗,网友:凡事就怕对比
- 2024-10-12 NalfWrkxfV(wfdwyxqxjf-rh)
- 2024-10-12 阿森纳VS切尔西,欧联杯冠军之争,你看好谁?是埃梅里还是萨里?
- 2024-10-12 大学生志愿者三下乡支教活动顺利开展
- 2024-10-12 他是圈内隐形低调富豪,明明家里有亿万家产,还跑龙套
- 2024-10-12 他曾建议开除岳云鹏,成名后岳云鹏最感激他,网友:男人的气度
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)