首页 > 编程语言 >rewrk一个更现代的http框架基准测试实用程序

rewrk一个更现代的http框架基准测试实用程序

时间:2024-03-02 11:56:32浏览次数:32  
标签:http ms rewrk -- 测试 HTTP 实用程序

引言

     rewrk一个更现代的http框架基准测试实用程序。HTTP基准测试(HTTP benchmarking)是一种测量和评估HTTP服务器或应用程序性能指标的活动。其目的是在特定条件下模拟大量用户请求,以测量服务器或应用程序的响应能力、吞吐量、延迟等指标,从而评估其性能表现。HTTP基准测试通常使用专门的测试工具,如Apache Bench(ab)、JMeter、LoadRunner等,模拟多个客户端同时向服务器发送请求,并测量服务器的响应时间、并发处理能力等关键指标。通过这些测试,可以了解服务器或应用程序在不同负载下的性能表现,并找出可能存在的性能瓶颈或问题。在进行HTTP基准测试时,需要设置适当的测试参数,如并发用户数、请求类型、请求数据量等,以模拟真实的用户行为。同时,还需要对测试结果进行分析和解读,以了解服务器或应用程序的性能瓶颈和优化方向。

快速上手

rewrk -h http://127.0.0.1:5000 -t 12 -c 60 -d 5s

Benchmarking 60 connections @ http://127.0.0.1:5000 for 5 seconds
  Latencies:
    Avg      Stdev    Min      Max    
    3.27ms   0.40ms   1.95ms   9.39ms
  Requests:
    Total:  91281  Req/Sec: 18227.81
  Transfer:
    Total: 1.13 MB Transfer Rate: 231.41 KB/Sec
     这个项目背后的动机来自开发人员对 TechEmpower等基准测试的隧道愿景,(TechEmpower是一个Web Framework Benchmarks测试平台,该平台对世界上各大Web框架进行功能测试,并提供一个综合排名。从2013年3月开始,这个平台已经进行了18轮测试,参与框架的数量也从最初的24种增加到了659种。)这些基准测试使用名为 wrk 的基准测试工具.wrk 只处理一些 HTTP 规范,并且完全偏向于可以大量使用 HTTP/1 流水线的框架和服务器,这在大多数现代浏览器或客户端中不再启用,这可能会在比较框架时给出一组非常不公平和不合理的统计数据,因为顶部的框架更擅长使用现在不常用的进程。基准测试器建立在 hyper 的客户端 api 之上,并带来了许多优势和更现实的基准测试方法。
当前功能

支持 HTTP/1 和 HTTP/2

多平台支持,在 Windows 上开发,但也可以在 Mac 和 Linux 上运行。


USAGE:
     rewrk.exe [FLAGS] [OPTIONS] --duration <duration> --host <host>

FLAGS:
         --help       Prints help information
         --http2      Set the client to use http2 only. (default is http/1) e.g. '--http2'
         --pct        Displays the percentile table after benchmarking.
     -V, --version    Prints version information

OPTIONS:
     -c, --connections <connections>    Set the amount of concurrent e.g. '-c 512' [default: 1]
     -d, --duration <duration>          Set the duration of the benchmark.
     -h, --host <host>                  Set the host to bench e.g. '-h
http://127.0.0.1:5050'
     -t, --threads <threads>            Set the amount of threads to use e.g. '-t 12' [default: 1]

Rust环境安装

rust

大家在安装rust时,大多数同学是参考官方文档执行脚本安装,脚本如下:

curl https://sh.rustup.rs -sSf | sh

但是因为某些原因,在国内执行上面 该脚本会被墙掉,然后终端就一直没有下载进度

➜ ~ curl https://sh.rustup.rs -sSf | sh info: downloading installer

  • 为了可以正常执行,可以配置下镜像源,加速rust下载、安装。终端配置如下命令:

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

  • 接着执行官方文档的下载脚本:

curl https://sh.rustup.rs -sSf | sh

Cargo Install 使用 Cargo 安装

cargo install rewrk --git https://github.com/ChillFish8/rewrk.git

CentOS安装

除了gcc,还需要

yum install -y openssl-devel

从源代码编译

cargo build –release

clipboard

实践

./rewrk -h http://172.21.44.1:18193/ws/logout -t 12 -c 60 -d 10s

Beginning round 1...

Benchmarking 60 connections @ http://172.21.44.1:18193/ws/logout for 10 second(s)

Latencies:

Avg Stdev Min Max

10.06ms 9.81ms 0.55ms 118.18ms

Requests:

Total: 59559  Req/Sec: 5955.74

Transfer:

Total: 18.18 MB Transfer Rate: 1.82 MB/Sec



今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章:
领导人怎样带领好团队
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

标签:http,ms,rewrk,--,测试,HTTP,实用程序
From: https://www.cnblogs.com/wintersun/p/18048450

相关文章

  • Windows安装node.js以及环境配置、常见npm镜像源、npm安装包报错 解决https证书过期 r
    一、Windows安装node.js以及环境配置1、下载Node.js安装包Node.js官方网站,选择LTS版本或者最新版本,然后点击下载按钮。.msi是软件安装包、.zip是压缩包,解压之后即可,不需要安装2、运行安装程序下载完成后,双击安装包运行安装程序。安装完成后,在Node的安装目录下创建两个......
  • IIS10 隐藏 http server、删除 Windows Server IIS 10 和 ASP.NET 中的 HTTP 响应标头
    一、方案1IIS10.0中的removeServerHeaderrequestFiltering在IIS10.0(WindowsServer2016/2019)中,您可以通过在system.webServer节点中配置requestFiltering来移除Server标头:web.config<security><requestFilteringremoveServerHeader="true"/></securit......
  • 聊聊 HTTP 性能优化
    哈喽大家好,我是咸鱼。作为用户的我们在"上网冲浪"的时候总是希望快一点,尤其是抢演唱会门票的时候,但是现实并非如此,有时候我们会遇到页面加载缓慢、响应延迟的情况。而HTTP协议作为互联网世界的基础,从网站打开速度到移动应用的响应时间,HTTP性能的优化直接关系到我们在网络世......
  • 解决Nginx代理转发中HTTP到HTTPS跳转问题的技术方案解析
    在进行Nginx代理转发时,经常会遇到HTTP到HTTPS跳转的问题,特别是在某些情况下,即使在程序中明确指定了使用HTTPS协议,仍然会出现跳转到HTTP的情况。本文将介绍一种解决这个问题的技术方案,并对问题的原因进行分析。问题描述在进行Nginx代理转发时,配置了HTTPS支持,但在程序中发起请求时......
  • Go 100 mistakes - #81: Using the default HTTP client and server
        ......
  • 求求你别再用OkHttp调用API接口了,快来试试这款HTTP客户端库吧
    引言在日常业务开发中,我们时常需要使用一些其他公司的服务,调用第三方系统的接口,这时就会涉及到网络请求,通常我们可以使用HttpClient,OkHttp等框架去完成网络请求。随着RESTfulAPI的普及,一个高效、简洁且易于维护的HTTP客户端库显得尤为关键。而本文主要介绍一款强大的网络客户端......
  • Microsoft.AspNetCore.Http.Abstractions 2.20 is deprecated
    您想要升级 Microsoft.AspNetCore.Http.Abstractions 包,您需要注意以下几点:Microsoft.AspNetCore.Http.Abstractions 包在 ASP.NETCore2.2 版本后已经被标记为过时,因为它已经被包含在 Microsoft.AspNetCore.App 框架引用中12。因此,您不需要单独引用这个包,只需要在项目......
  • HttpWebRequest的Request.Form接收不到数据
    最近在写接口,post请求,使用postman模拟时,使用的是raw-json,然后发现HttpContextBasecontext=(HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统contextHttpRequestBaserequest=context.Request;//定义传统request对象stringdbcode=request.Form["d......
  • 在极狐GitLab 配置 SSL/https
    本文作者徐晓伟说明极狐GitLabhttps使用的是nginx实现的本文使用的域名是IP192.168.80.14(原因:如果使用域名,必须拥有这个域名的所有权,并增加解析才可以,要不然在Docker容器中,无法使用域名检出代码,因为根据域名找不到DNS记录)如果使用自己生成的证书,git检出代码、推送......
  • 学习之HTTP(2)
    3.1.3HTTP1.0和HTTP1.1的区别在HTTP1.0版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器之间开启一个新的连接;但在HTTP1.1版本中,允许浏览器在拿到当前请求对应的全部资源后再断开连接,提高了效率。3.1.4在浏览器中通过F12工具抓取请求响应报文包几乎所有的PC......