官方文档:

https://httpd.apache.org/docs/2.4/programs/ab.html

ab原理:

ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。 ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。

Apache服务自带了应该用于压力测试的工具ab(ApacheBench),对应做一些简单的压力测试,它完全能够胜任,本文主要介绍,在centos中不安装Apache的情况下,安装ab

#安装步骤:

  1. 安装ab依赖包
yum install apr-util
  1. 安装httpd-tools, 里面包含ab工具
yum install httpd-tools
  1. 运行ab -V查看当前版本,安装成功

简单用法:

参数很多,一般我们用 -c 和 -n 参数就可以了。

#ab -c 1000 -n 4000 http://www.yoursite.com/index  #必须要具体到某页面

-n 总共发出4000个请求 -c 采用1000个并发(模拟1000个人同时访问) 后面的网址表示测试的目标 URL (必须具体到某页面)

返回结果参数说明:

Server Software 表示被测试的Web服务器软件名称,这里是Apache/2.2.19,它来自于http响应数据的头信息,所以如果是我们自己编写的Web服务器软或者修改开源Web服务器软件的源代码,便可以随意改写这里的名称。

vi /usr/local/apache/conf/httpd.conf #隐藏具体版本信息ServerSignature OffServerTokens Prod

Server Hostname 表示请求的URL中的主机部分名称,它来自于http请求数据的头信息,这里我们请求的URL是http://localhost/index.html,所以主机名为localhost,说明我们的请求是从Web服务器端发起的。

Server Port 表示被测试的Web服务器软件的监听端口,为了方便测试,我们后面会对多个不同的Web服务器软件使用不同的监听端口。

Document Path 表示请求的URL中根绝对路径,它同样来自于http请求数据的头信息,通过它的后缀名,我们一般可以理解该请求的类型。

Document Length 表示http响应数据的正文长度。

Concurrency Level 表示并发用户数,这是我们设置的参数。

Time taken for tests 表示所有这些请求被处理完成花费的总时间。顺便提一下,某些Apache版本如2.2.4附带的ab,对于这一统计项存在一些计算上的bug,当总请求数较少时,其统计的总时间会无法小于0.1s。

Complete requests 表示总请求数,这是我们设置的相应参数。

Failed requests 表示失败的请求数,这里的失败是指请求的连接服务器、发送数据、接收数据等环节发生异常,以及无响应后超时的情况。对于超时时间的设置可以用ab的-t参数。 而如果接收到的http响应数据的头信息中含有2xx以外的状态码,则会在测试结果显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算是失败的请求。

Total transferred 表示所有请求的响应数据长度总和,包括每个http响应数据的头信息和正文数据的长度。注意这里不包括http请求数据的长度,所以Total transferred代表了从Web服务器流向用户PC的应用层数据总长度。通过使用ab的-v参数即可查看详细的http头信息。

HTML transferred 表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中http响应数据中头信息的长度。

Requests per second 这便是我们重点关注的吞吐率,它等于: Complete requests / Time taken for tests

Time per request 这便是前面提到的用户平均请求等待时间,它等于: Time taken for tests / (Complete requests /Concurrency Level)

Time per request?(across all concurrent requests) 这便是前面提到的服务器平均请求处理时间,它等于: Time taken for tests / Complete requests 这正是吞吐率的倒数。同时,它也等于: Time per request / Concurrency Level

Transfer rate 表示这些请求在单位时间内从服务器获取的数据长度,它等于: Total transferred / Time taken for tests 这个统计项可以很好的说明服务器在处理能力达到限制时,其出口带宽的需求量。 利用前面介绍的有关带宽的知识,不难计算出结果。

Percentage of the requests served within a certain time(ms) 这部分数据用于描述每个请求处理时间的分布情况,比如在以上测试结果中,80%请求的处理时间都不超过1ms,而99%的请求都不超过2ms。注意这里的处理时间,是指前面的Time per request,即对于单个用户而言,平均每个请求处理的时间。

ab压力测试_CentOS安装压力测试工具ApacheBench(ab)相关推荐

  1. 【测试工具】在linux测试环境安装bug管理工具禅道

    在我们测试中,为了方便管理测试流程,提交测试发现的bug,我们需要使用到bug管理工具.有些大公司可能会自己开发一些bug管理工具,但是我们也会用一些开源的bug管理工具,比如Bugzilla,Red ...

  2. 压力测试ab安装 linux,Centos8下安装ab压力测试工具及ab命令详解

    释放双眼,带上耳机,听听看~! 1.ab的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以 ...

  3. ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具

    AB的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比 ...

  4. ab测试工具 linux,超实用压力测试工具-ab工具

    写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内 ...

  5. [收藏]超实用压力测试工具-ab工具

    本文转载自:https://www.jianshu.com/p/43d04d8baaf7 写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second ...

  6. 压力测试工具-ab工具

    写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间 ...

  7. html5 并发测试工具,超实用压力测试工具-ab工具

    吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数.某个并发用户数下单位时间内能处理的最大请求数,称 ...

  8. 运维之道 | apachebench ab压力测试工具

    apachebench ab压力测试工具 一.ab的原理 ab是apachebench命令的缩写 ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是 ...

  9. linux 压力测试工具之ab

    简介 Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用 在此提供 ab 在 centOS7 下的安装和使用方法 注:个人发现,之前安装的centos6 ...

最新文章

  1. 10种排序算法基础总结
  2. Linux 下安装redis
  3. hive桌游中文规则_超火爆轻策桌游《小小城镇》新扩展——小金币大作为,邀你共筑繁荣小镇!...
  4. 【Java规划】DOM XML Parser分解、遍历、创XML
  5. 怎样写出可维护的面向对象javascript(译)
  6. [iOS] Win8下在Vmware11中安装使用苹果系统OS X 10.10
  7. oracle vm 安装虚拟机小bug
  8. 【渝粤教育】电大中专职业生涯规划 (3)作业 题库
  9. linux安装php支持redis拓展
  10. STM8学习笔记---IAR工程中添加文件夹
  11. 2018C/C++蓝桥杯解析
  12. python+selenium自动化测试环境搭建步骤(selenium环境搭建)-绝不浪费您的时间
  13. java语言使用tess4j识别苏康码图片
  14. 网易企业邮箱注册后,管理员怎么管理邮箱?
  15. 解决binwalk提取需要权限问题,binwalk提取文件报错。
  16. Error running ‘JeeplusWebApplication‘: Command line is too long. Shorten command line for JeeplusWeb
  17. 小程序兼容苹果底部安全距离
  18. 讲一讲 MySQL 数据备份杀手锏 binlog
  19. Android Studio更新问题
  20. 现有一列表 ls = [‘the lord of the rings’,‘anaconda’,‘legally blonde’,‘gone with the wind’]

热门文章

  1. Python入门100题 | 第076题
  2. neuralcoref使用教程-指代消解
  3. Spring Boot: Tuning your Undertow application for throughput--转
  4. cglib源码分析--转
  5. Microservices Reference Architecture - with Spring Boot, Spring Cloud and Netflix OSS--转
  6. jodd-servlet工具集锦
  7. 广告计算——平滑CTR
  8. 现代信用卡管理(二)
  9. Algorithms_二叉树的前序遍历、中序遍历、后续遍历(深度优先)
  10. Fragment初识