• 压测工具siege和wrk


    siege压测工具

    安装:

    wget http://download.joedog.org/siege/siege-3.0.8.tar.gz

    cd siege-3.0.8

    ./configure

    make

    make install

    验证安装结果:输入siege -V 如果输出了版本号就代表安装没问题

    Siege命令常用参数

    -c 200 指定并发数200
    -r 5 指定测试的次数5
    -f urls.txt 制定url的文件
    -i internet系统,随机发送url
    -b 请求无需等待 delay=0
    -t 5 持续测试5分钟

    测试指标说明:

    Transactions: 4 hits 完成4次处理 
    Availability: 100.00 % 成功率 
    Elapsed time: 1.19 secs 总共用时
    Data transferred: 0.03MB 共数据传输:0.03MB
    Response time: 0.13 secs 相应用时0.13秒,显示网络连接的速度
    Transaction rate: 3.36 trans/sec平均每秒完成3.36次处理,表示服务器后台处理的速度
    Throughput: 0.03MB/sec 平均每秒传送数据:0.03MB
    Concurrency: 0.45 最高并发数 0.45
    Successful transactions: 4成功处理次数
    Failed transactions: 0 失败处理次数
    Longest  transaction:0.25请求最长响应时间/每次传输所花最长时间
    Shortest  transaction:0.09请求最短响应时间/每次传输所花最短时间

    测试背景 服务器32U apache部署的django服务

    siege -c32 -t10s -v -b 127.0.0.1::8000

    HTTP/1.1 200 0.89 secs: 1 bytes ==> GET /test/
    [error] socket: -222533888 address is unavailable.: Cannot assign requested address


    Transactions: 29390 hits
    Availability: 96.59 %
    Elapsed time: 4.68 secs
    Data transferred: 0.03 MB
    Response time: 0.00 secs
    Transaction rate: 6279.91 trans/sec
    Throughput: 0.01 MB/sec
    Concurrency: 14.81
    Successful transactions: 29390
    Failed transactions: 1039
    Longest transaction: 0.89
    Shortest transaction: 0.00

    我们看会出现error,而且并发数也少的可怜为啥呢?因为siege不能建立长连接,顾名思义就是每发一次tcp请求就会close掉,不能连续发1000个在close,这样服务器会down掉

    我们现在用wrk来试试

    git clone https://github.com/wg/wrk.git  

    cd wrk  

    make  

    参数说明:

    -c,——连接:保持打开的HTTP连接的总数每个线程处理N =连接/线程

    -d,——持续时间:试验持续时间,如2s, 2m, 2h

    -t,——线程:要使用的线程总数脚本:LuaJIT脚本,参见脚本

    header:添加到请求中的HTTP头文件,例如:“用户代理:wrk”

    ——latency:打印详细的延迟统计信息

     

    ——timeout:如果内部没有接收到响应,则记录一个超时这段时间。

    ./wrk -t30 -c1000 -d30s 127.0.0.1:8000

    压测结果

    Running 30s test @ 127.0.0.1:8000
    30 threads and 1000 connections
    Thread Stats Avg Stdev Max +/- Stdev
    Latency 49.08ms 125.03ms 1.94s 91.46%
    Req/Sec 764.47 495.39 8.32k 70.24%
    666327 requests in 30.10s, 174.87MB read
    Socket errors: connect 0, read 88, write 0, timeout 119
    Requests/sec: 22137.51
    Transfer/sec: 5.81MB

    由此可见并发数为两万多,因为wrk他是支持长连接的。

  • 相关阅读:
    MySQL中查询表及索引大小的方法
    转:一套大而全的系统架构体系与具体落地方案
    [转]1年时间业务量疯长40倍,谈人人车的平台架构演进之路
    [转]如何实现“持续集成”?闲鱼把研发效率翻了个翻
    微服务介绍
    Python2.X和Python3.X的w7同时安装使用
    黑客与画家阅读体会
    Open Source 开发工具集
    volatile和不加volatile的区别
    VMware改变硬盘空间大小的方法
  • 原文地址:https://www.cnblogs.com/sunzhiqi/p/12187512.html
Copyright © 2020-2023  润新知