zoukankan      html  css  js  c++  java
  • 2、使用siege进行服务端性能测试

    先查看siege帮助

    输入siege -h

    翻译一下常用命令

    -c  指定并发数

    -r  指定重复次数

    -d  指定请求的延迟时间,注意每个请求间随机延迟

    -f  指定url列表,可以一次给多个地址加压

    -t  指定用例执行时间,比如-t 10s -t 1M(H)之类

    -g  获取请求的headers信息并打印出来,debug专用

    -H  指定请求的headers信息

    -l或--log=[File]  指定测试结果的路径

    根据帮助文档我们可以直接实战

    需求:

    1、模拟10个用户同时访问http://www.baidu.com

    2、一共跑2个循环

    实现:

    1、输入:siege -c 20 -r 3 http://www.baidu.com

    2、运行后结果

     3、了解各字段意思

    • Transactions: siege对服务器的访问次数。如果页面发生了redirect,那么siege会将跳转过的请求算成是另一个transaction
    • Availability: socket连接的成功率。算法是,如果页面发生了timeout,4xx,5xx,那么该请求算是失败请求,成功率就等于(所有请求-失败请求) / 总请求数
    • Elapsed time: 所有请求耗费的时间
    • Data transferred: 所有请求传输的数据量,包括请求的headers和content。所以这个数值可能比server端统计的数值要大一点
    • Response time: 平均响应时间
    • Transaction rate: Transactions / Elapsed time
    • Throughput: 每秒平均传输的数据量
    • Concurrency: 平均并发的请求数
    • Successful transactions: 所有status code < 400的transactions数量
    • Failed transactions: 所有status code >= 400的transactions数量
    • Longest transaction: 最耗时的请求时间
    • Shortest transaction: 最短单个请求时间

     4、分析结果

    我们对http://www.baidu.com用10个用户跑了两个循环,对服务器访问了180次,连接的成功率是85.71%。所有请求耗费的时间是1.60secs,所有请求传输的数据量是2.10M,平均响应时间0.05 secs,吞吐量是112.50 trans/sec,每秒平均传输的数据量是1.31 MB/sec,

    平均并发的请求数6.04,请求成功的次数是180次,请求失败的数是30次,最耗时的请求时间是1.01,最短单个请求时间0.00.  

    有个注意点,就是连接的成功率是85.71%是怎么来的呢?是请求成功数/请求总数。也就是180/180+30

    当然这些数据中,我觉得最重要的是Transaction rate,上面这个例子是10个用户跑了两个循环,Transaction rate是112.50 trans/sec,如果这个吞吐量不满足需求,那么我们就可以把这个数据交给开发,让开发进行处理。

  • 相关阅读:
    分页公共方法
    关于锁表查询的部分SQL
    将Excel中的数据绑定到DataGrid控件中
    CMMI相关信息
    图片在DataGrid中的用法
    关于standard Button和html Button之disabled属性的比较
    VS2003中链接数据库方法
    .NET多语言版本系统功能实现
    Read and Write 单一文件
    为继承masterpage的页面设置defaultbutton和defaultfocus
  • 原文地址:https://www.cnblogs.com/suim1218/p/7666980.html
Copyright © 2011-2022 走看看