ab压力测试工具的使用
一.下载稳定版2.2.31
http://httpd.apache.org/
二.2.2.*和2.4.*区别?
httpd-2.2.x(prefork)
httpd-2.4.x(event) 编译时可以使用--with-mpm=prefork手动指定其使用prefork
PHP官方推荐httpd使用prefork(php能更稳定地运行),而不是线程化的worker和event,httpd-2.4.x默认使用线程化的event作为mpm.
Linux上很多PECL库都是非线程安全的,libphp5.so在线程化的httpd(event/worker)中运行可能会出现一些问题,为了保持兼容性和稳定性,PHP一般还是使用httpd-2.2.x(prefork)这个分支.
apache本身不提供已编译的安装包,只提供源码,如果你自己无法编译,可以选择下面这些官方推荐的第三方提供编译的网站。
其中后两个是有名的wamp以及xampp集成环境,如果只想下载apache可以选择前三个网站,这里我们第一个ApacheHaus为例。
选择版本进行下载(Apache 2.2 VC9)

三.安装
- 解压到指定目录
- 命令行下进入到apache下面的bin目录,输入:httpd -k install,把apache安装成windows后台服务。
- 修改配置文件\conf\httpd.conf
-

修改监听端口
默认80端口,若端口被其他应用程序占用,切记监听的端口一定不能被使用:(查看80端口是否被占用,命令行下输入:netstat -aon|findstr "80")
打开apache目录下的conf/httpd.conf 搜索 "Listen 80";
修改为Listen 7777;
保存之后再重新启动apache。
- 修改Apache的存放路径

- 如何启动,停止,重启,Apache?
- 利用ApacheMonitor来启动你的apache(也可以不用这个,可以直接使用httpd -k start来启动)关闭:httpd -k stop 重启:httpd -k restart
开始-->运行-->services.msc-->确定,找到服务后,右键操作
在linux下安装:
- yum -y install httpd-tools
- 进入到/usr/bin目录下
四.使用AS进行压力测试
压力测试通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。再简单点,就是你网站的性能的一个评定,性能由本身程序和网站服务器共同决定。 而进行压力测试,就是为了让你更好得掌握网站的各个信息。
- Apache自带工具AB是什么?
Apache Benchmark简称为ab,是apache自带的用于HTTP Server测试的工具。它可以接受单一的URL,然后重复地按照指定的多个独立线程的方式加载,并使用不同的命令行参数控制访问的次数、最大的并发访问数等。
- AB怎么用?
- cmd,进入apache目录的bin目录下:
# ab -n1000 -c10 http://192.168.116.193/index.html #表示每次并发10个请求,总共请求1000次
- 输入:ab -n 10 -c 10 "http://paycenter.gotrip8.com/querypay.aspx?Version=1.0&InputCharset=GBK&SignType=MD5&PlatFormCode=CPOTA&OrderNo=TEST0123456784&Sign=185FA68CA23AAE7B3A02A226ABD30297"
注意:请求URL要使用双引号括起来,否则ab无法识别&符号

- Post方式请求
参数文档:参数文档内容使用“key=value&key=value&key=value...”方式进行拼接,还有json的方式,但我实验没有成功,接收不到参数,具体原因未知
- Post方式请求

输入:ab -n 10 -c 10 -p d:\test\querypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx
注意:-p是参数文档路径,-T是大写英文字母,post表单格式为:application/x-www-form-urlencoded

- 解析输出结果:
This is ApacheBench, Version 2.3<$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus TechnologyLtd, http://www.zeustech.net/
Licensed to The Apache Software Foundation,http://www.apache.org/
Benchmarking 192.168.116.193 (be patient)
Completed 100
requestsCompleted 200
requestsCompleted 300
requestsCompleted 400
requestsCompleted 500
requestsCompleted 600
requestsCompleted 700
requestsCompleted 800
requestsCompleted 900
requestsCompleted 1000
requestsFinished 1000 requests
Server Software: nginx/1.0.15 #平台apache 版本
Server Hostname: 192.168.116.193 #服务器主机名
Server Port: 80 #服务器端口
Document Path: /index.html #测试的页面
Document Length: 3698 bytes #测试页面大小
Concurrency Level: 10 #并发数
Time taken for tests: 0.577 seconds #整个测试耗时
Complete requests: 1000 #总共完成的请求数量
Failed requests: 0 #表示失败的总请求数,这里的失败指请求在连接服务器、发送数据、接收数据等环节发生异常,以及无响应超时等情况
Write errors: 0 #网络连接写入错误数
Total transferred: 3917820 bytes #测试过程中产生的网络传输总量
HTML transferred: 3705396 bytes #测试过程中产生的HTML传输量
Requests per second: 1733.55 [#/sec] (mean) #表示服务器吞吐量,每秒事务数,括号中的 mean 表示这是一个平均值,
计算规则:Request per second = Complete requests / Timetaken for tests(主要关注)
Time per request: 5.768 [ms] (mean) #表示用户请求的平均响应时间,后面括号中的mean表示这是一个平均值
计算规则:Time per request = Time taken for tests /( Complete requests / Concurrency Level)(主要关注)
Time per request: 0.577 [ms] (mean, across all concurrentrequests) #表示服务器请求平均处理时间,即实际运行时间的平均值(主要关注)
Transfer rate: 6632.57 [Kbytes/sec] received #表示这些请求在单位时间内从服务器获取的数据长度,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms)min mean[+/-sd] median maxConnect: 0 2 5.5 2 85
Processing: 1 3 6.3 2 84
Waiting: 0 2 5.1 2 82
Total: 2 5 8.8 4 100 #网络上消耗的时间的分解,表示这些请求在单位时间内从服务器获取的数据长度
Percentage of the requests served within acertain time (ms) #整个场景中所有请求的响应情况,在场景中每个请求都有一个响应时间
50% 4 #其中50%的用户响应时间小于4毫秒
66% 5 #60%的用户响应时间小于5毫秒
75% 5 #
80% 5 #
90% 6 #
95% 9 #
98% 19 #
99% 80 #
100% 100 (longest request) #最大的响应时间小于100 毫秒

注意:
- 输入:ab -n 10 -c 10 "http://paycenter.gotrip8.com/querypay.aspx?Version=1.0&InputCharset=GBK&SignType=MD5&PlatFormCode=CPOTA&OrderNo=TEST0123456784&Sign=185FA68CA23AAE7B3A02A226ABD30297"
注意:请求URL要使用双引号括起来,否则ab无法识别&符号

- Post方式请求
参数文档:参数文档内容使用“key=value&key=value&key=value...”方式进行拼接,还有json的方式,但我实验没有成功,接收不到参数,具体原因未知

输入:ab -n 10 -c 10 -p d:\test\querypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx
注意:-p是参数文档路径,-T是大写英文字母,post表单格式为:application/x-www-form-urlencoded

六.Ab命令参数注释:
-n #指定在测试会话中所执行的请求总个数。默认时,仅执行一个请求。
-c #指定一次产生的请求个数。默认是一次一个。也就是每次的并发请求数,但是这个数值不能大于-n后面的数值,否者会报错:ab: Cannot use concurrency level greater than total number of requests
-t #测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p #包含了需要POST的数据的文件.
-T #POST数据所使用的Content-type头信息。
-v #设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。
-w #以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-I #执行HEAD请求,而不是GET。
七.安装时常见问题解决:
- cmd输入命令行找到你Apache所在的位置,之后输入httpd -k install命令执行就可以安装了。

- 这个时候运行突然报"无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题",解决方案是:下载vc++2015 并安装,链接是:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145,这个直接下载安装就可以了。
- 重新运行的时候又会出现一个问题,就是没有Apache的安装权限。但你看到这个报错的时候,找到cmd,用管理员身份运行就可以了。说一下我这是win8系统,所以看起来比较别扭,你可以直接找到cmd的目录C:\Windows\SysWOW64,找到cmd.exe用管理员身份运行就ok了。


- 问题一个接一个,你重新输入命令行httpd -k install,出现如下报错,这是由于程序默认路径和程序实际安装路径不一致导致的。这个解决方案是,找到Apache安装程序目录下的conf文件,找到httpd.conf用记事本打开,搜索"Define SRVROOT",找到需要改动的位置,Define SRVROOT引号里面改成自己程序路径就可以了。


- 终于看到曙光了,这样基本所有可能遇到的问题都解决了。接下来我们会看到安装成功了。输入命令行net start Apache2.4启动服务,测试安装情况,出现如下情况则是安装正确。同时可以输入http://localhost/进行验证,出现如下页面。

- 如果Listen的端口被占用,也就是端口冲突就会出现在这种情况

ab压力测试工具的使用的更多相关文章
- 4分钟apache自带ab压力测试工具使用: 2015.10.4
2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...
- win8.1上wamp环境中利用apache自带ab压力测试工具使用超简单讲解
2015.10.4apache自带ab压力测试工具使用:本地环境:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一 ...
- ab压力测试工具-批量压测脚本
ab(Apache benchmark)是一款常用的压力测试工具.简单易用,ab的命令行一次只能支持一次测试.如果想要批量执行不同的测试方式,并自动对指标进行分析,那么单靠手工一条一条命令运行ab,估 ...
- 如何使用apache自带的ab压力测试工具
ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab 1 我们可以模拟100个并发用户,对一个页面发送1000个请求 ./ab -n1000 -c1 ...
- 【Linux】ApacheBench(ab)压力测试工具
AB的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比 ...
- Windows如何使用Apache的ab工具进行网站性能测试(Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便)
打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意 ...
- linux ab压力测试工具及ab命令详解
原文链接:https://blog.csdn.net/qq_27517377/article/details/78794409 yum -y install httpd-tools ab -v 查看a ...
- ab压力测试工具的简单使用
ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具.apache自带ab工具,可以测试 apache.IIs.tomcat.nginx等服务器 但是ab没有Jmeter.Loadru ...
- apache ab 压力测试工具
Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力.Apache附带的ab工具(使用的PHP环境是WAMP集成环境, ...
随机推荐
- sql操作总结
SQL 语句的多表查询方式例如:按照 department_id 查询 employees(员工表)和 departments(部门表)的信息.方式一(通用型):SELECT ... FROM ... ...
- 不平衡学习 Learning from Imbalanced Data
问题: ICC警情数据分类不均,30+分类,最多的分类数据数量1w+条,只有10个类别数量超过1k,大部分分类数量少于100条. 解决办法: 下采样:通过非监督学习,找出每个分类中的异常点,减少数据. ...
- JAVA基础知识点总结(全集)
1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境 ...
- Mybatis(二)基于注解的入门实例
前言 上一篇简单的介绍了Mybatis的概念和基于XML来实现数据库的CRUD,这篇给大家实现基于注解的CRUD. 一.初始搭建 在基于注解当中前四步和上一篇基于XML是一样的,分别是: 1)创建数据 ...
- tcp 三次握手 转
转载 记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下 ...
- Eclipse 中修改tomcat设置内存大小
修改1: 在Eclipse中下面Servers双击Tomcat Server... 然后点击General InformAtion 下的Open launch configuration: 会弹出Ed ...
- 为什么我们做分布式使用Redis?
绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.这里对 Redis 常见问题做一个总结,解决 ...
- vue.js 开发文档
一.安装 node.js 首先需要安装node环境,可以直接到中文官网http://nodejs.cn/下载安装包. 只是这样安装的 node 是固定版本的,如果需要多版本的 node,可以使用 nv ...
- 【代码审计】XIAOCMS_后台database.php页面存在任意文件删除漏洞
0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...
- Springmvc的原理和业务处理
要尽量弄懂这个springmvc的工作原理:DispatcherServle,HandlerMapping,HandlerAdapter和ViewResolver等对象协同工作,完成springmvc ...