apache ab 并发负载压力测试
来源:互联网 发布:java pdf转图片 编辑:程序博客网 时间:2024/05/22 04:36
性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege、Web Polygraph等。
ab是apache自带的压力测试工具,通过模拟多线程并发请求,测试服务器负载压力。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试,比如nginx、lighthttp、tomcat、IIS等。
http://httpd.apache.org/docs/2.2/programs/ab.html
一、ab的原理
ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,适合对一个页面做简单的性能测试。
ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,因此是某些DDOS攻击之必备良药,老少皆宜。
二、ab的参数说明
- -n
在测试会话中所执行的请求个数。默认时,仅执行一个请求。 - -c
一次产生的请求个数。默认是一次一个。 - -t
测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。 - -p
包含了需要POST的数据的文件。 - -T
POST数据所使用的Content-type头信息。 - -v
设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。 - -w
以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。 - -i
执行HEAD请求,而不是GET。 - -x
设置属性的字符串。 - -y
设置属性的字符串。 - -z
设置属性的字符串。 - -C
对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。 - -H
对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,”Accept-Encoding:zip/zop;8bit”)。 - -A
对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。 - -P
对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。 - -X
对请求使用代理服务器。 - -V
显示版本号并退出。 - -k
启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。 - -d
不显示”percentage served within XX [ms] table”的消息(为以前的版本提供支持)。 - -q
如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。 - -g
把所有测试结果写入一个’gnuplot’或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。 - -e
产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比’gnuplot’格式更有用。 - -h
显示使用方法。
三、ab的性能指标
吞吐率(Requests per second)
QPS,这是一个平均值,某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数/处理完成这些请求数所花费的时间,即
这个数值表示当前机器的整体性能,值越大越好。并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。请求中-c参数指定的数量。用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数)响应数据长度总和(Total transferred)
表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。网络传输速度(Transfer rate)
对于大文件的请求测试,这个值很容易成为系统瓶颈所在。要确定该值是不是瓶颈,需要了解客户端和被测服务器之间的网络情况,包括网络带宽和网卡速度等信息。
四、ab的性能指标
简单测试:模拟20个用户,对本博主博客发送200次请求:
ab.exe -n 200 -c 20 http://blog.csdn.net/aoshilang2249
- apache-ab并发负载压力测试
- apache-ab并发负载压力测试
- apache-ab 并发负载压力测试
- apache-ab并发负载压力测试
- apache-ab并发负载压力测试
- apache ab 并发负载压力测试
- [大并发]自虐Apache,ab压力测试
- 优化之路-----Apache-ab并发负载压力测试的初接触
- apache ab压力测试
- apache ab压力测试
- apache ab压力测试
- apache ab压力测试
- apache ab压力测试
- apache ab压力测试
- apache ab 压力测试
- apache ab压力测试
- apache ab压力测试 .
- apache ab压力测试
- 初识 Solr
- VS2013 单元测试(使用VS2013自带的单元测试)
- 为什么Redis内存不宜过大
- Android Studio 使用教程(二十七)之Android Studio 进阶详细配置
- spring cloud eureka server warning EUREKA MAY BE INCORRECTLY
- apache ab 并发负载压力测试
- node进程管理pm2
- 支付宝小程序(ble 适配android和ios) 入门一
- C++ 之 constexpr And shared_ptr
- Windows RPC编程详解
- 异步类AsyncTask学习
- 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)
- [android]父子控件之间响应焦点状态
- 移植tslib编译问题