简单模拟一下ab压力测试

在学习ab工具之前,我们需了解几个关于压力测试的概念

吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests

并发连接数(The number of concurrent connections)
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

并发用户数(The number of concurrent users,Concurrency Level)
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)

服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level

简单了解下ab

ab全程是apache benchmark,是apache官方推出的一个工具,创建多个并发访问线程,模拟多个访问者同时对一个URL地址进行访问。它的测试目标是基于URL的,因此它既可以来测试apache的负载压力,也可以测试Nginx等服务器的压力。

ab压力测试需要注意哪些?

测试的注意事项:
测试机器与被测试机器要分开,别在同一台机器上测试,否则结果是不准确的
不要对线上的服务器做测试,否则挂了就不好了哦。
观察测试工具ab所在的机器,以及被测试的前端机器的CPU,内存,网络等都不超过最高限度的75%。

下面测试下,两台服务器。

192.168.136.135  作为被测试的WEB服务器

192.168.136.148  作为ab测试的服务器

首先确保ab测试服务器安装ab,使用以下命令yum安装

  1.  yum -y install httpd-tools
  2.   查看信息:ab -V

安装完成之后,执行ab命令,返回一些帮助信息,确保安装成功

访问以下被测试的服务器,确保正常

执行下面的命令进行测试

ab -c 100 -n 5000 http://192.168.136.135/phpinfo.php      //模拟100个并发数,总共访问5000次

返回的结果

  1.  This is ApacheBench, Version 2.3 <$Revision: 655654 $>
  2.  Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
  3.  Licensed to The Apache Software Foundation, http://www.apache.org/
  4.  

  5.  Benchmarking 192.168.136.135 (be patient)
  6.  Completed 500 requests
  7.  Completed 1000 requests
  8.  Completed 1500 requests
  9.  Completed 2000 requests
  10.  Completed 2500 requests
  11.  Completed 3000 requests
  12.  Completed 3500 requests
  13.  Completed 4000 requests
  14.  Completed 4500 requests
  15.  Completed 5000 requests
  16.  Finished 5000 requests
  17.  

  18.  

  19.  Server Software: nginx //被测试的服务器是Nginx
  20.  Server Hostname: 192.168.136.135 //Hostname
  21.  Server Port: 80 //端口
  22.  

  23.  Document Path: /phpinfo.php //path
  24.  Document Length: 96660 bytes //文档大小
  25.  

  26.  Concurrency Level: 100 //100个并发
  27.  Time taken for tests: 11.860 seconds //时间花费
  28.  Complete requests: 5000 //请求了5000次
  29.  Failed requests: 486 //失败了486次
  30.  (Connect: 0, Receive: 0, Length: 486, Exceptions: 0)
  31.  Write errors: 0
  32.  Total transferred: 484274801 bytes //整个场景中的网络传输量
  33.  HTML transferred: 483509342 bytes ///整个场景中的HTML内容传输量
  34.  Requests per second: 421.60 [#/sec] (mean) //QPS值,不高 吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值
  35.  Time per request: 237.194 [ms] (mean) ///用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值
  36.  Time per request: 2.372 [ms] (mean, across all concurrent requests) //服务器平均请求处理时间,大家最关心的指标之三
  37.  Transfer rate: 39876.53 [Kbytes/sec] received //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
  38.  

  39.  Connection Times (ms)
  40.  min mean[+/-sd] median max
  41.  Connect: 0 1 1.3 1 13
  42.  Processing: 45 234 44.2 231 540
  43.  Waiting: 23 187 40.7 182 442
  44.  Total: 47 235 44.0 232 540
  45.  

  46.  Percentage of the requests served within a certain time (ms)
  47.  50% 232 //这是每个请求处理的时间分布情况,平均页面的响应时间是232毫秒以内,66%的在238毫秒以内,主要看90%的处理时间
  48.  66% 238
  49.  75% 243
  50.  80% 247
  51.  90% 280
  52.  95% 302
  53.  98% 382
  54.  99% 442
  55.  100% 540 (longest request) //最长是540毫秒

把并发数改为50测试一下

ab -c 50 -n 5000 http://192.168.136.135/phpinfo.php
  1. .....

  2.  

    Connection Times (ms)

  3.  

    min mean[+/-sd] median max

  4.  

    Connect: 0 1 1.3 1 18

  5.  

    Processing: 52 104 13.2 104 158

  6.  

    Waiting: 36 79 8.1 79 135

  7.  

    Total: 65 105 13.3 104 170

  8.  

  9.  

    Percentage of the requests served within a certain time (ms)

  10.  

    50% 104

  11.  

    66% 108

  12.  

    75% 111

  13.  

    80% 114

  14.  

    90% 126

  15.  

    95% 131

  16.  

    98% 135

  17.  

    99% 139

  18.  

    100% 170 (longest request)

  19.  

    [[email protected] ~]# ab -c 50 -n 5000 http://192.168.136.135/phpinfo.php

  20.  

    This is ApacheBench, Version 2.3 <$Revision: 655654 $>

  21.  

    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

  22.  

    Licensed to The Apache Software Foundation, http://www.apache.org/

  23.  

  24.  

    Benchmarking 192.168.136.135 (be patient)

  25.  

    Completed 500 requests

  26.  

    Completed 1000 requests

  27.  

    Completed 1500 requests

  28.  

    Completed 2000 requests

  29.  

    Completed 2500 requests

  30.  

    Completed 3000 requests

  31.  

    Completed 3500 requests

  32.  

    Completed 4000 requests

  33.  

    Completed 4500 requests

  34.  

    Completed 5000 requests

  35.  

    Finished 5000 requests

  36.  

  37.  

  38.  

    Server Software: nginx

  39.  

    Server Hostname: 192.168.136.135

  40.  

    Server Port: 80

  41.  

  42.  

    Document Path: /phpinfo.php

  43.  

    Document Length: 96660 bytes

  44.  

  45.  

    Concurrency Level: 50

  46.  

    Time taken for tests: 10.987 seconds

  47.  

    Complete requests: 5000

  48.  

    Failed requests: 478

  49.  

    (Connect: 0, Receive: 0, Length: 478, Exceptions: 0)

  50.  

    Write errors: 0

  51.  

    Total transferred: 484064467 bytes

  52.  

    HTML transferred: 483299467 bytes

  53.  

    Requests per second: 455.07 [#/sec] (mean) //QPS

  54.  

    Time per request: 109.874 [ms] (mean)

  55.  

    Time per request: 2.197 [ms] (mean, across all concurrent requests)

  56.  

    Transfer rate: 43023.80 [Kbytes/sec] received

  57.  

  58.  

    Connection Times (ms)

  59.  

    min mean[+/-sd] median max

  60.  

    Connect: 0 1 0.9 1 14

  61.  

    Processing: 32 109 14.4 108 192

  62.  

    Waiting: 9 82 10.1 83 158

  63.  

    Total: 32 109 14.3 109 193

  64.  

  65.  

    Percentage of the requests served within a certain time (ms)

  66.  

    50% 109

  67.  

    66% 112

  68.  

    75% 115

  69.  

    80% 118

  70.  

    90% 129

  71.  

    95% 136

  72.  

    98% 144

  73.  

    99% 152

  74.  

    100% 193 (longest request) //最长193

测试结果其实并不实际很准确,因为测试机和被测试机都在一台机器上。这里值是了解。

然后再来一个静态的html测试下

转载:https://blog.csdn.net/weixin_41981080/article/details/86742830

原文地址:https://www.cnblogs.com/hfdp/p/12356224.html

时间: 2024-08-29 06:52:42

简单模拟一下ab压力测试的相关文章

ab压力测试工具的简单使用

ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具.apache自带ab工具,可以测试 apache.IIs.tomcat.nginx等服务器 但是ab没有Jmeter.Loadrunner那样有各种场景设计.各种图形报告和监控,只需一个命令即可,有输出描述 可以简单的进行一些压力测试 一.Mac下自带apache 查看版本 apachectl -v 以请求百度为例:http://httpd.apache.org/docs/2.4/programs/ab.html 详细说明见官

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度. 一.简单一行指令即可实现 <%@ OutputCache VaryByParam="none" Duration="300" %> 这样整个页面就被缓存了,由于我是首页进行的缓存,没有任何参数所以VaryByParam值设置为none,如果希望通过指定的参数来缓存内容可以设置"id;classid"这种形式,或者干脆就用"*",通过所有参数来

apache优化之防盗链,日志拆分,ab压力测试

Apache调优之apache防盗链.日志拆分和ab压力测试 1.apache防盗链 盗链,全称是盗取链接,假如我们的网站有很多好看的图片,别人可以查看我们网站图片的链接,然后应用在他的网站上,这样的话,去访问他的网站,实际上消耗的是我们的流量(因为实际链接在我们这里),这样我们就不得不去配置防盗链,使得别人不能复制我们图片的链接 要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示

Apache网页深入优化之ab压力测试、工作模式与目录属性优化

ab压力测试工具 Apache自带压力测试工具ab,简单易用,且可以模拟各种条件对Web服务器发起测试请求.ab工具可以直接在Web服务器本地发起测试请求,这对于需要了解服务器的处理性能至关重要,因为它不包括数据的网络传输时间以及用户PC本地的计算时间,从而可以通过观测各种时间指标判断Web服务器的性能,以便进行参数的优化调整. 在进行性能调整优化过程中,可用ab压力测是工具进行优化效果的测试:1.优化前先使用ab进行压力测试2.优化后,重启服务,再使用ab进行压力测试3.对比两次测试的结果,看

Apache服务ab压力测试

将ab压力测试之前,先讲解一下相关概念: 吞吐率(Requests per second) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数.某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率. 计算公式: 总请求数 / 处理完成这些请求数所花费的时间,即Request per second = Complete requests / Time taken for tests 并发连接数(The number of concurrent

超级web服务器yum 安装apache+源码编译tomcat+awstat+phpmadin+mysql+php+AB压力测试

实验环境: 两台机器:Centos6.4 机器一: 192.168.56.10  安装httpd  php   等整合 机器二: 192.168.56.11 安装 mysql ======================================================================================== (iptables -t nat -I PREROUTING -d 外IP -p tcp -m tcp --dport 端口 -j DNAT --

Apache 深度优化 ab压力测试

网站性能压力了测试是服务器网站性能调优过程中必不可少的一环,只有让服务器处在高压的情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_load.webbench.siege.ab是Apache自带的压力测试工具,非常实用,可以模拟多线程并发请求,测试服务器负载压力.它不仅可以对Apache服务器进行网站访问压力测试,而且可以对其他类型服务器进行压力测试.ab对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多内存,但却会

apache ab压力测试报错apr_socket_recv

apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104)) apache 自带的ab工具测试,当并发量达到1000多的时候报错如下: [[email protected] ~]# ab -n 100000 -c 1000 http://192.168.2.170/index.htmlThis is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Ada

php-xcache编译安装,及ab压力测试

[[email protected] local]# tar -xf xcache-3.2.0.tar.bz2 [[email protected] xcache-3.2.0]# man -M /usr/local/php/php/man phpize 查看帮助文档 [[email protected] xcache-3.2.0]# /usr/local/php/bin/phpize [[email protected] xcache-3.2.0]# man -M /usr/local/php/