UbuntuLinux系统下安装wrk和使用

前言

wrk是一个用c语言写的压力测试工具,非常有用,但是ubuntu的软件仓库没有收录wrk,需要我们自己进行编译和安装,最近在学习一些性能测试、性能优化方面的知识,需要使用到这个强有力的工具,故此记录安装和使用的过程。

安装

首先若是没有安装编译工具那么就得先安装一下:

# 安装 make 工具
sudo apt-get install make
 
# 安装 gcc编译环境
sudo apt-get install build-essential

之后安装git

sudo apt-get install git

从git上拉源码

git clone git@github.com:wg/wrk.git

要是没有梯子等加速工具可以使用gitee

git clone git@gitee.com:ponponon/wrk.git

安装openssl库

sudo apt-get install libssl-dev

使用make编译源码

cd wrk
make

make之后在wrk目录下就可以使用./wrk指令了,不过为了全局能使用,可以将其添加到path

# 把生成的wrk移到一个PATH目录下面, 比如
sudo cp wrk /usr/local/bin

wrk一个特性就是用很少的线程可以压出很大的并发量,原因是啥它使用了一些操作系统特定的高性能io机制,例如select,epoll等。

使用一个简单的性能测试:

wrk -t12 -c100 -d30s http://www.baidu.com  

可以看到如下输出:

Running 30s test @ http://www.baidu.com12 threads and 100 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    41.00ms   12.53ms 421.23ms   92.02%Req/Sec   173.37     51.53   260.00     75.17%23100 requests in 30.10s, 231.29MB readSocket errors: connect 0, read 1888, write 0, timeout 0
Requests/sec:    767.48
Transfer/sec:      7.68MB

12 threads and 100 connections

用12个线程模拟100个连接.

对应的参数 -t 和 -c 可以控制这两个参数.

wrk中各个参数:

  • -t 需要模拟的线程数

  • -c 需要模拟的连接数

  • --timeout 超时的时间

  • -d 测试的持续时间

结果中:

  • Latency:响应时间

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

  • Avg:平均

  • Stdev:标准差

  • Max:最大

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

  • Requests/sec:QPS(每秒请求数),这是一项压力测试的性能指标,通过这个参数我们可以看出应用程序的吞吐量。

  • Transfer/sec:每秒传输的数据量

如果想看响应时间的分布情况可以加上--latency参数

wrk -t12 -c100 -d30s -T30s --latency http://www.baidu.com  
Running 30s test @ http://www.baidu.com12 threads and 100 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    41.46ms   20.81ms 453.31ms   97.90%Req/Sec   169.27     57.92   250.00     75.02%Latency Distribution50%   38.59ms75%   42.03ms90%   46.62ms99%   96.43ms23100 requests in 30.03s, 231.29MB readSocket errors: connect 0, read 1277, write 0, timeout 0
Requests/sec:    769.24
Transfer/sec:      7.70MB

可以看到50%在38ms的量级,很可以

使用 wrk 测试 nginx

wrk http://192.168.31.203                             
Running 10s test @ http://192.168.31.2032 threads and 10 connections
​Thread Stats   Avg      Stdev     Max   +/- StdevLatency   657.87us  761.70us  19.66ms   97.90%Req/Sec     8.48k   743.41     9.74k    83.00%168665 requests in 10.00s, 138.16MB read
Requests/sec:  16865.61
Transfer/sec:     13.82MB

使用 wrk 测试 gunicorn

wrk http://192.168.31.203:63000/upload/                     
Running 10s test @ http://192.168.31.203:63000/upload/2 threads and 10 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    10.91ms    7.41ms  93.90ms   79.23%Req/Sec   486.49     92.10   797.00     64.50%9692 requests in 10.01s, 3.47MB readNon-2xx or 3xx responses: 9692
Requests/sec:    968.38
Transfer/sec:    354.63KB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows安全应急--在应急响应中需要知道的信息

在网络安全事件发生后,一般是要去客户现场排查问题的, 那么要想解决问题,信息的完整性决定了这次任务的成败。。 1. 你需要知道的: 先让客户梳理一遍事情的起因经过结果 询问客户需要解决的问题 了解客户的网络环境&#xff08…

【ARM 嵌入式 C 入门及渐进 6.2 -- ARMv8 C 内嵌汇编读系统寄存器的函数实现】

请阅读【嵌入式开发学习必备专栏】 文章目录 ARMv8 C 内嵌汇编读系统寄存器 ARMv8 C 内嵌汇编读系统寄存器 要在ARMv8架构中通过C代码和内嵌汇编来读取系统寄存器s3_0_c15_c5_5的值,并将其返回,可以按照以下方式实现system_read_reg函数: #…

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key,典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…

innerText和innerHTML的区别

innerHTML和innerText都是元素的属性,通过修改这个元素的属性可以达到修改元素内容的目的。但是二者之间略有不同。具体来说,它们的区别如下: innerHTML可以获取或设置元素内部的HTML内容,包括HTML标签,而innerText则…

LeetCode 79.单词搜索

原题链接:. - 力扣(LeetCode) 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内…

若依前后端分离版本-前后端交互整理

ruoyi-ui与后端交互 方法一:表单 使用 headers: {Content-Type:application/x-www-form-urlencoded}, ruoyi-ui的vue中 //ruoyi-ui的vue中定义 formData: {a: 111,b: 111,c: 1,}, //vue中方法调用 outBound() { empty(this.formData).…

6款网页表白代码6(附带源码)

6款网页表白代码6 前言效果图及部分源码1.爱心倒计时2.一起看星星3.爱心4.爱心(有鼠标移动特效)5.爱心(高级效果)6.爱心(3D效果) 领取源码下期更新预报 前言 大部分人都有喜欢的人,学会这些表白…

蓝桥杯物联网竞赛_STM32L071KBU6_关于sizo of函数产生的BUG

首先现象是我在用LORA发送信息的时候,左边显示长度是8而右边接收到的数据长度却是4 我以为是OLED显示屏坏了,又或者是我想搞创新用了const char* 类型强制转换数据的原因,结果发现都不是 void Function_SendMsg( unsigned char* data){unsi…

微软Edge

微软Edge浏览器概述 功能介绍 微软Edge是一款基于Chromium开源项目的网页浏览器,旨在提供更快的网页加载速度、更高的安全性和更好的用户体验。它支持多种操作系统,包括Windows、macOS、Android和iOS,能够满足不同用户的需求。Edge浏览器拥…

赶紧收藏!2024 年最常见 20道 Redis面试题(三)

上一篇地址:赶紧收藏!2024 年最常见 20道 Redis面试题(二)-CSDN博客 五、Redis的持久化机制是什么? Redis 是一个高性能的键值存储系统,支持多种类型的数据结构,如字符串、哈希、列表、集合、…

python数据类型之字符串

目录 1.字符串概念和注意事项 2.字符串内置函数 3.字符串的索引、切片和遍历 4.字符串运算符 5.字符串常用方法 性质判断 开头结尾判断 是否存在某个子串 大小写等格式转化 子串替换 删除两端空白字符 格式化字符串 分割与合并 6.字符串模板 7.exec 函数 8.字符…

【Linux】-Zookeeper安装部署[17]

简介 apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 除了为Hadoop和H…

2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

VMware Num Lock 总自动切换的问题解决

VMware Num Lock 总自动切换的问题解决 0. 问题描述1. 解决方法 0. 问题描述 使用 VMware 虚拟机时,鼠标在 VMware 和主机之间切换时,总是显示 “Num Lock 开” 和 “Num Lock 关” 的提示框。 1. 解决方法 在 VMware 系统中,按 fn num 统…

0407放大电路的频率响应

放大电路的频率响应 单时间常数RC电路的频率响应中频响应高频响应低频响应全频域响应 放大电路频率响应概述1. 直接耦合放大电路频域响应阻容耦合放大电路频域响应 4.7.1 单时间常数RC电路的频率响应 4.7.2 放大电路频率响应概述 4.7.3 单级共射极放大电路的频率响应 4.7.4 单级…

TOSHIBA UTLH21 属于Unifi NV系列

TOSHIBA UTLH21 是东芝推出的一款工业控制器,属于Unifi NV系列。 这款控制器代表了东芝在工业自动化领域的一次重要进步,它在功能和性能上都超越了现有的V系列控制器。以下是UTLH21的一些主要特点: 高速逻辑与控制能力:UTLH21具…

Spring框架中获取方法参数名称:DefaultParameterNameDiscoverer

DefaultParameterNameDiscoverer 是Spring框架中用于获取方法参数名称的一个类。在Java中,方法的参数名称通常在编译时会丢失,因为Java字节码并不强制要求保留这些信息。Spring提供了一种机制来恢复这些参数名称,这就是通过DefaultParameterN…

IT行业的现状与未来趋势

这里写目录标题 一、引言二、IT行业的现状三、IT行业面临的挑战四、IT行业的未来趋势五、结论 一、引言 信息技术(IT)行业在过去几十年中经历了飞速发展,从早期的计算机硬件和软件开发,到如今涵盖云计算、人工智能、大数据、物联…

深度学习之基于Django+Tensorflow卷积神经网络实时口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球疫情的持续,佩戴口罩成为了公众日常生活中不可或缺的一部分。特别是在人员密集的…

【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…