HTTP压测工具wrk安装与使用

news2024/11/19 12:42:16

一、前言
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:8000
  20 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    16.55ms   15.79ms 193.87ms   81.98%
    Req/Sec     3.72k   383.43    12.72k    84.60%
  Latency Distribution
     50%   11.69ms
     75%   24.33ms
     90%   38.26ms
     99%   69.77ms
  2224767 requests in 30.02s, 428.58MB read
Requests/sec:  74099.66
Transfer/sec:     14.27MB

3、测试结果解析
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.coloradmin.cn/o/1514546.html

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

相关文章

使用ChatGPT高效完成简历制作[中篇]-有爱AI实战教程(五)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 导读:在使用 ChatGPT 时,当你给的指令越精确,它的回答会越到位,举例来说,假如你要请它帮忙写文案,如果没…

上海亚商投顾:沪指震荡调整 飞行汽车概念股持续爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整,深成指走势稍强,创业板指一度涨超1%,黄白二线走势分化&a…

Nginx怎么去做负载均衡?

一.什么是负载均衡? 负载均衡是一种在计算机网络中分配工作负载的技术,旨在将请求或任务均匀地分配给多个服务器、计算资源或其他设备,以避免单个节点过载,并提高系统的可靠性、稳定性和性能。负载均衡通常用于分布式系统、网络服…

QT网络编程之实现TCP客户端和服务端

一.QT5.12实现TCP客户端和服务端功能 1.QT中实现TCP通信主要用到了以下类:QTcpServer、QTcpSocket、QHostAddress 2.基本流程: 使用QTcpServer来创建一个TCP服务器,在新的连接建立时,将新建立连接的socket添加到列表中&#xf…

Copilot如何将word文稿一键转为PPT

背景 很多小伙伴平时经常会遇到的一个场景是,如何将word文稿图文转为PPT。 这个过程是既复杂而又无趣的。 现在,有了copilot,你可以一键搞定! 使用copilot Pro来实现 比如我们想要做一个关于copilot studio的PPT展示&#xf…

使用tui-image-editor 图片编辑 标注图片

需求背景: 鼠标悬浮在图片上 出现编辑按钮 点击编辑 对该图片进行编辑(输入文案、涂鸦、标记、裁剪等) 可以体验一下它线上编辑器 Image-editor | TOAST UI :: Make Your Web Delicious! 使用 首先在你的前端项目中安装: np…

Spring Boot 中的 Sleuth 详解

Spring Boot 中的 Sleuth 是一个用于分布式追踪的库,它可以帮助你追踪和理解分布式系统中的请求如何跨越多个服务和网络调用。通过使用 Sleuth,你可以收集关于请求路径、延迟、异常等的信息,从而更容易地诊断问题并进行性能优化。 一、下面是…

chown: changing ownership of ‘.‘: Permission denied 的一种解法

前言 最近在新电脑用 colima docker 启动服务遇到了这样的报错 chown: changing ownership of .: Permission denied在网上搜索了很久,不管是google还是stack overflow都没有突破口,只要绑定了 volumes 就会报错,按照网上说的方法&#xff…

分布式协议笔记

目录 一致性协议 2pc 3pc CanCommit PreCommit doCommit 回滚 3PC的优点和缺陷 paxos算法 一、Paxos算法背景 二、Paxos算法流程 Paxos算法实例1 Paxos算法实例2 Paxos算法实例3 三、Multi-Paxos算法 附Paxos算法推导过程 raft 概念介绍 算法步骤 Leader选…

css实现高度是宽度一半的效果

1、方法一&#xff1a;使用变量:root、var()、clac()实现&#xff1a; 1.1 效果如下&#xff1a; 2.2 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>&l…

AMEYA360:稳先微汽车驱动芯片—智能高边开关WS7系列

近几年&#xff0c;新能源汽车高速发展&#xff0c;用车浪潮蔓延全球&#xff0c;我国新能源汽车占有量连续9年居全球前列&#xff0c;2023年全年市占率达37.7%&#xff0c;市场规模可观&#xff0c;并显现出以下特点&#xff1a;电车产品对比油车优势明显、消费者接受度高、市…

KNN算法对鸢尾花进行分类:添加网格搜索和交叉验证

优化——添加网格搜索和交叉验证 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection imp…

DevOps-SonarQube整合Jenkins

下载SonarQube Scanner 登录Jenkins服务器&#xff0c;下载SonarQube Scanner wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip安装unzip&#xff0c;需要通过它来解压zip压缩包 yum install -y unzip解压So…

详解MySQL的MVCC(ReadView部分解析C++源码)

文章目录 1. 什么是MVCC2. MVCC核心组成&#xff08;三大件&#xff09;2.1 MVCC为什么需要三大件 3. 隐藏字段4. undo log4.1 模拟版本链数据形成过程 5. Read View5.1 m_ids5.2 m_creator_trx_id5.3 m_low_limit_id5.4 m_up_limit_id5.5 可见性分析算法 6. MVCC流程模拟6.1 R…

三、NLP中的句子关系判断

句子关系判断是指判断句子是否相似&#xff0c;是否包含&#xff0c;是否是问答关系等&#xff0c;常应用在文本去重、检索&#xff08;用户输入和文档的相关性&#xff09;、推荐&#xff08;和用户喜好文章是否相似&#xff09;等场景中。 3.0、文本相似度计算 3.0.0 传统机…

白嫖AWS云服务器,验证、注册指南

背景 不知道你想不想拥有一台属于自己的云服务器呢&#xff0c;拥有一台自己的云服务器可以建站&#xff0c;可以在上面搭建个人博客&#xff0c;今天我就来教大家如何申请亚马逊 AWS 免费云服务器&#xff0c;这个云服务器可以长达12个月的免费。而且到期后可以继续换个账号继…

Vulnhub - DC-1

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog DC-1 靶机下载地址&#xff1a;DC: 1 ~ VulnHub 0x01 信息收集 Nmap扫描目标主机&#xff0c;发现开…

OPENCV(0-1之0.2)

OPENCV-0.2 学习安排图像基础像素访问和修改像素值 色彩空间转换RGB到灰度的转换RGB到HSV的转换 图像操作裁剪缩放旋转和翻转 图像滤波平滑和模糊图像边缘检测 图像变换仿射变换透视变换 总结 官方文档 学习安排 图像基础 像素&#xff1a;了解像素的概念&#xff0c;包括像素…

Filebeat(Beats)详细介绍与使用

1. 什么是 Beats? Beats 是开源数据传送器&#xff0c;将其作为代理安装在服务器上&#xff0c;以将操作数据发送到 Elasticsearch。 Elastic提供Beats用于捕获&#xff1a; 审核数据&#xff1a;Auditbeat 日志文件和日志&#xff1a;Filebeat 云数据&#xff1a;Functio…

【物联网学习笔记】CubeMx6.10+STM32F407ZGT6+LWIP最最最基础配置

使用正点原子探索者开发板 板载芯片&#xff1a;STM32F407ZGT6 PHY芯片&#xff1a;LAN8720 LWIP版本&#xff1a;2.1.2 本次目标&#xff1a;先ping通开发板再说&#xff01; 文章目录 一、CubeMX配置1、时钟配置2、ETH配置3、LWIP配置4、添加LAN8720的复位引脚 二、Keil工…