zoukankan      html  css  js  c++  java
  • HTTP 压测工具wrk简介

    前段时间项目压测,看到开发命令行下使用这个命令进行压测非常简洁、方便,萌发了学习的兴趣,这里仅做简单介绍。

    安装

    wrk支持大多数UNIX系统,不支持Windows。需要操作系统支持LuaJIT和OpenSSL。

    安装:只需要从github上下载wrk源码,在项目路径下make即可。

    ➜  ~ git clone https://github.com/wg/wrk
    
    Cloning into 'wrk'...
    remote: Enumerating objects: 1085, done.
    remote: Total 1085 (delta 0), reused 0 (delta 0), pack-reused 1085
    Receiving objects: 100% (1085/1085), 27.42 MiB | 633.00 KiB/s, done.
    Resolving deltas: 100% (337/337), done.
    ➜  ~ cd wrk
    ➜  wrk git:(master) make
    Building LuaJIT...
    ==== Building LuaJI
    

    编译后,根目录下会生成可执行文件wrk,可以拷贝到PATH包含目录中,或者直接将当前目录添加到PATH,后续就可以直接使用wrk命令。

    默认情况下wrk会使用自带的LuaJIT和OpenSSL。

    指定使用系统已经安装的版本如下:

    make WITH_LUAJIT=/usr WITH_OPENSSL=/usr
    

    基本使用

    ➜  ~ wrk --help
    Usage: wrk <options> <url>
      Options:
        -c, --connections <N>  Connections to keep open
        -d, --duration    <T>  Duration of test
        -t, --threads     <N>  Number of threads to use
    
        -s, --script      <S>  Load Lua script file
        -H, --header      <H>  Add header to request
            --latency          Print latency statistics
            --timeout     <T>  Socket/request timeout
        -v, --version          Print version details
    
      Numeric arguments may include a SI unit (1k, 1M, 1G)
      Time arguments may include a time unit (2s, 2m, 2h)
    

    选项说明:

    • -c,跟服务器建立连接并保持的TCP连接数量
    • -d,压测时长,支持时间单位:s,m,h
    • -t,线程数
    • -s,指定Lua脚本路径
    • -H, - - header 为每一个HTTP请求添加HTTP头
    • --latency 压测结束后,打印延迟统计信息
    • --timeout 超时时间
    • -v,打印版本信息

    优点

    优点:

    • wrk使用方便,结果清晰
    • 因为非阻塞IO的使用,可以在普通测试机上创建出大量的连接,从而达到较好的压测效果

    缺点:

    • 只能单机压测,适合简单场景的快速验证

    其他

    支持lua脚本,详见介绍见:<https://www.cnblogs.com/xinzhao/p/6233009.html

  • 相关阅读:
    IntelJ idea下lombok 不生效的问题(@Builder等注解不生效的问题)解决,lombok Plugin插件安装
    Lombok使用
    Windows系统配置.bat启动spring boot项目jar
    SpringBoot2.X + SpringCache + redis解决乱码问题
    mac安装Redis可视化工具-Redis Desktop Manager
    带你轻松了解C# Lock 关键字
    Nginx + Docker 多阶段构建的部署学习
    WPF在Gmap.net中将Marker动起来
    WPF使用 Gmap.NET 绘制极坐标运动轨迹
    使用MySql对IdentityServer4进行持久化
  • 原文地址:https://www.cnblogs.com/amyzhu/p/10874280.html
Copyright © 2011-2022 走看看