HTTP压测工具wrk安装与使用

一、前言
wrk是一个基于C语言开发的用于HTTP性能测试的开源工具,它可以模拟多个并发连接,测量服务器的响应时间和吞吐量,并且会给出较为全面的测试结果

1、本文主要内容
在Windows、macOS、Linux(CentOS & Ubuntu等)上安装wrk
wrk使用以及参数介绍
wrk压测结果详解
2、本篇环境信息
工具/环境版本 wrk4.
3、前置条件
准备Docker环境:Docker入门:Docker安装与基本使用,需要使用Docker准备被测试服务
二、wrk安装
1、在macOS上安装wrk
1.1、安装或者更新Homebrew

参与https://cloud.tencent.com/developer/article/2259803,安装&配置Homebrew

安装Homebrew

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

更新Homebrew

brew update
复制
1.2、安装wrk

brew install wrk
复制
1.3、安装验证

wrk -v
复制
2、在Linux上安装wrk
2.1、在CentOS上安装wrk

# CentOS 安装依赖
sudo yum install -y git gcc make zip unzip# 创建编译目录并赋权限
sudo mkdir /home/downloads && sudo chmod a+rwx /home/downloads && cd /home/downloads# 下载源码并编译(可以用mirror仓库替代:https://gitee.com/mirrors/wrk.git)
git clone https://github.com/wg/wrk.git
cd wrk && make# 将编译后的wrk文件复制到系统bin目录
sudo cp wrk /usr/local/bin

2.2、在Ubuntu / Debian上安装wrk

sudo apt-get install -y wrk

2.3、安装验证

wrk -v

3、在Windows上安装wrk

3.1、安装WSL和Ubuntu# 安装启用WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart# 安装Ubuntu
wsl --install -d Ubuntu
复制
安装完成后重启系统如果安装过程中碰到问题,可以打开微软应用商店进行安装,或者参考:https://learn.microsoft.com/zh-cn/windows/wsl/install 进行安装3.2、在Ubuntu子系统安装wrk# 进入Ubuntu子系统
wsl -d Ubuntu# 安装wrk
sudo apt-get install -y wrk
复制
3.3、安装验证wrk -v

三、wrk压测
1、准备测试服务

# 启动容器
docker run --name myhello -p 8000:8000 -d kentalk/helloworld# 访问测试
curl localhost:8000

2、发起测试

发起20个线程、1000个连接,持续30s的性能测试

wrk -t20 -c1000 -d30s --latency http://localhost:8000# 输出示例
Running 30s test @ http://localhost:800020 threads and 1000 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    16.55ms   15.79ms 193.87ms   81.98%Req/Sec     3.72k   383.43    12.72k    84.60%Latency Distribution50%   11.69ms75%   24.33ms90%   38.26ms99%   69.77ms2224767 requests in 30.02s, 428.58MB read
Requests/sec:  74099.66
Transfer/sec:     14.27MB3、测试结果解析
1、线程统计 (Thread Stats):平均延迟 (Avg Latency):16.55毫秒
延迟标准差 (Latency Stdev):15.79毫秒
最大延迟 (Max Latency):193.87毫秒
+/- 延迟标准差 (Latency +/- Stdev):81.98%
每秒请求数 (Req/Sec):3.72k (单个线程)
请求成功率 (+/- Stdev):84.60%
2、延迟分布 (Latency Distribution)50线:11.69毫秒
75线:24.33毫秒
90线:38.26毫秒
99线:69.77毫秒
3、整体情况:在30秒内发出了2224767个请求
平均每秒请求数 (Requests/sec):74099
最大每秒请求数 (Requests/sec):127200(12.72k)

四、备注
1、wrk参数说明

--connections (-c)  -c  指定保持打开的连接数。--duration (-d) -d  指定测试的持续时间。可以使用时间单位(例如:2s,2m,2h)。--threads (-t)-t指定要使用的线程数。--script (-s) -s 指定要加载的Lua脚本文件,用于自定义测试行为。--header (-H) -H  向请求添加特定的标头。--latency   打印延迟统计信息。--timeout  指定套接字/请求的超时时间。可以使用时间单位。--version  -v  打印wrk的版本详细信息。

在这里插入图片描述

参考链接
https://cloud.tencent.com/developer/article/2381728
https://github.com/wg/wrk

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

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

相关文章

任务弹窗更新为任务对话框

1.设计初心 在玩家接取任务/交付任务时,界面弹出的UI ,需要与玩家互动,点击“接取”“完成”。等等字样【改动前】频繁的手动点击会中断玩家跑图的流畅性,也降低了任务寻路系统的实际体验。于是现在变成类似FakeObj 对话框的模式…

数字逻辑-时序逻辑电路一

一、实验目的 (1)熟悉触发器的逻辑功能及特性。 (2)掌握集成D和JK触发器的应用。 (3)掌握时序逻辑电路的分析和设计方法。 二、实验仪器及材料 三、实验内容及步骤 1、用D触发器(74LS74&am…

idea Springboot 组卷管理系统LayUI框架开发mysql数据库web结构java编程计算机网页

一、源码特点 springboot 组卷管理系统是一套完善的完整信息系统,结合mvc框架和LayUI框架完成本系统springboot spring mybatis ,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整…

ES6(三):Iterator、Generator、类的用法、类的继承

一、迭代器Iterator 迭代器是访问数据的一个接口,是用于遍历数据结构的一个指针,迭代器就是遍历器 const items[one,two,three];//创建新的迭代器const ititems[Symbol.iterator]();console.log(it.next()); done:返回false表示遍历继续&a…

Python 查找PDF中的指定文本并高亮显示

在处理大量PDF文档时,有时我们需要快速找到特定的文本信息。本文将提供以下三个Python示例来帮助你在PDF文件中快速查找并高亮指定的文本。 查找并高亮PDF中所有的指定文本查找并高亮PDF某个区域内的指定文本使用正则表达式搜索指定文本并高亮 本文将用到国产第三方…

linux安全--CentOS7安装Tomcat,远程管理ManagerApp

目录 1.Tomcat安装 2.Tomcat远程管理 1.Tomcat安装 下载安装包并解压 tar xf apache-tomcat-7.0.54.tar.gz -C /usr/local/apache-tomcat_7.0.54/tomcat启停 启动 ./startup.sh 停止 ./shutdown.sh 2.Tomcat远程管理 找到tomcat文件夹中webapps/manager/META-INF/contex…

Linux系统---Haproxy高性能负载均衡软件

目录 一、Haproxy介绍 1.Haproxy定义 2.Haproxy主要特性 3.Haproxy调度算法原理 3.1RR(Round Robin) 3.2LC(Least Connections) 3.3SH(Source Hashing) 二、安装Haproxy 1.yum安装 2.第三方rpm包安…

Android中compile,implementation和api的区别,以及gradle-wrapper的详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 前言: compile,implementation和api的区别和其作用 compile和api会进行传递…

【深度学习目标检测】二十三、基于深度学习的行人检测计数系统-含数据集、GUI和源码(python,yolov8)

行人检测计数系统是一种重要的智能交通监控系统,它能够通过图像处理技术对行人进行实时检测、跟踪和计数,为城市交通规划、人流控制和安全管理提供重要数据支持。本系统基于先进的YOLOv8目标检测算法和PyQt5图形界面框架开发,具有高效、准确、…

叶子分享站PHP源码

叶子网盘分享站PHP网站源码,创建无限级文件夹,上传文件,可进行删除,下载等能很好的兼容服务器。方便管理者操作,查看更多的下载资源以及文章,新增分享功能,异步上传文件/资源等 PHP网盘源码优势…

Unix环境高级编程-学习-05-TCP/IP协议与套接字

目录 一、概念 二、TCP/IP参考模型 三、客户端和服务端使用TCP通信过程 1、同一以太网下 四、函数介绍 1、socket (1)声明 (2)作用 (3)参数 (4)返回值 (5&…

三星泄露微软 Copilot 新功能:用自然语言操控各种功能

3 月 11 日消息,微软计划本月晚些时候发布新款 Surface 电脑和适用于 Windows 11 的 Copilot 新功能,但三星似乎等不及了,在其即将推出的 Galaxy Book4 系列产品宣传材料中泄露了一些即将到来的 Copilot 功能。 三星官网上发布的图片证实了此…

在centOS服务器安装docker,并使用docker配置nacos

遇到安装慢的情况可以优先选择阿里镜像 安装docker 更新yum版本 yum update安装所需软件包 yum install -y yum-utils device-mapper-persistent-data lvm2添加Docker仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.rep…

SQLite—免费开源数据库系列文章目录

SQLite系列相关文章较多特开本文为了便于读者阅读特写了本索引和目录之用本文将不断更新中有需要的读者可以收藏本文便于导航到各个专题( 持续更新中......)。收藏一篇等于收藏一个系列文章 简介类: SQLite——世界上部署最广泛的免费开源数据库(简介&…

【海贼王的数据航海】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

Post请求出现Request header is too large

问题描述: 在做项目的时候,前端请求体太大的时候,出现Request header is too large问题,后端接口如下: 前端请求接口返回问题如下: 解决方案: 问题原因:这是因为我们在做Springboo…

旅游管理系统|基于SpringBoot+ Mysql+Java+Tomcat技术的旅游管理系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 …

反爬虫技术:如何保护你的网站数据安全

在数字化时代,数据的价值日益凸显,而爬虫技术则成为了获取这些数据的重要手段之一。然而,对于网站运营者来说,非法爬虫不仅会导致数据泄露,还可能给网站带来巨大的流量压力和安全隐患。因此,本文将探讨如何…

【深度学习】YOLOv9继续训练——断点训练方法

YOLOv9继续训练主要分为两个情况: 其一、训练过程中意外中断,未完成训练预期的epoch数量; 其二、训练完了,但是未收敛,在这个基础上,还想用这个权重、学习率等参数继续训练多一些轮次 一、训练过程中意外…

工作中常用的git命令

git 分布式版本控制系统。 使用远程仓库时候会有多个协议可以选择,使用https不仅仅速度慢,而且每次push都要输入口令。 HEAD 当前版本的指针,当切换本地版本的时候会快速指向指定版本文件 master git为我们创建主分支 origin 远程仓库的名…