• ab 压力测试介绍


    压测常用工具有:ab、http_load、webbench、siege。其中 ab 就是一个非常使用的命令,可以测试近乎所有的服务器,他的命令格式如下

    ab -h

    其中-n表示请求数,-c表示并发数

    ab -n 100 -c 10 https://blog.souche.com/
    

    ab 有限制,并发数不能超过 100。寻求其他做压力测试的工具。

    具体运行如下:

    $ ab -n 100 -c 10 https://blog.souche.com/
    This is ApacheBench, Version 2.3 <$Revision: 1826891 $> (服务器版本)
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/
    
    Benchmarking blog.souche.com (be patient).....done
    
    
    Server Software:
    Server Hostname:        blog.souche.com
    Server Port:            443
    SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
    TLS Server Name:        blog.souche.com
    
    Document Path:          /
    Document Length:        41251 bytes (此URL返回的文档大小)
    
    Concurrency Level:      10 (并发数)
    Time taken for tests:   7.713 seconds (压测消耗总时间)
    Complete requests:      100 (总请求数)
    Failed requests:        0
    Total transferred:      4153100 bytes (传输的总数据量)
    HTML transferred:       4125100 bytes (HTML 文档的总数据量)
    Requests per second:    12.96 [#/sec] (mean) (吞吐率,也就是平均每秒请求数)
    Time per request:       771.332 [ms] (mean) (用户平均请求等待时间:总消耗时间/(总请求数/并发用户数))
    Time per request:       77.133 [ms] (mean, across all concurrent requests) (服务器平均请求等待时间:总消耗时间/总请求数)
    Transfer rate:          525.81 [Kbytes/sec] received (传输速率)
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:       31   59  20.7     57     168
    Processing:   114  670 121.1    664     924
    Waiting:      101  652 121.6    652     905
    Total:        247  729 120.1    730    1085
    
    Percentage of the requests served within a certain time (ms)
      50%    730
      66%    755
      75%    779
      80%    809
      90%    909
      95%    950
      98%    966
      99%   1085
     100%   1085 (longest request)
    

    吞吐率(Requests per second)是越大越好。

    如果把上面的命令换成 ab -n 1000 -c 100 https://blog.souche.com/ ,做个更大压力的测试,最关键的几条测试结果如下:

    Requests per second:    15.61 [#/sec] (mean) (平均每秒请求数)
    Time per request:       6407.951 [ms] (mean) (用户平均请求等待时间)
    Time per request:       64.080 [ms] (mean, across all concurrent requests) (服务器平均请求等待时间)
    Transfer rate:          632.93 [Kbytes/sec] received
    

    似乎性能还提高了?这是因为吞吐率指的是在某个并发用户数下单位时间内处理的请求数,不同并发用户数下,吞吐率一般是不同的,其数值自然是越大越好。

    ab 的原理

    ab 是 ApacheBench 命令的缩写。会创建多个并发线程访问,模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的,因此,它既可以用来测试 apache 的负载压力,也可以测 试nginx、lighthttp、tomcat、IIS 等其它 Web 服务器的压力。

    ab 命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载。类似 CC 攻击。

  • 相关阅读:
    ubuntu linux切换用户到root
    passwd命令
    如何根据驱动程序及其安装文件来访问该设备[转]
    CMMI的5个级别和25个过程域
    Linux操作系统启动过程
    VMWare上网三种工作模式
    卷积的意义【转】
    Linux内核模块动态添加方法
    Linux内核编译的过程
    mysql存入中文乱码解决方法(windows环境)
  • 原文地址:https://www.cnblogs.com/everlose/p/12724717.html
Copyright © 2020-2023  润新知