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模式开发),系统具有完整…

小程序开发——获取设备信息 API(一)

ty.device.getDeviceInfo 获取设备的设备信息 需引入DeviceKit,且在>1.2.6版本才可使用 请求参数 Object object 属性类型默认值必填说明deviceIdstring是deviceId 设备 id 支持跨面板获取其他的设备信息,当前面板可以传当前设备的 id 来进行获取d…

Grad_CAM图

我们要将网络学习到的特征进行可视化。 import os import cv2 import numpy as np import torch from PIL import Image import matplotlib.pyplot as plt from torchvision import models from torchvision import transforms from utils import GradCAM, show_cam_on_image,…

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…

人工智能(AI)-机器学习-深度学习-大语言模型LLM(chatgtp)

【一文读懂“大语言模型” - CSDN App】 国产大语言模型是指由中国公司或机构开发的大规模预训练语言模型。目前,国产大语言模型主要有以下几种: 中文GPT(GPT-3):由华为公司开发,是一个基于Transformer架…

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网盘源码优势…

蓝桥杯 递增三元组

Problem: 蓝桥杯 递增三元组 文章目录 思路解题方法复杂度前缀和Code二分Code双指针Code 思路 这是一个关于数组的问题,我们需要找到一个递增的三元组。这个三元组由三个数组中的元素组成,每个数组提供一个元素,并且这三个元素满足递增的关系…

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…