转载自 https://segmentfault.com/a/1190000012765485
1.介绍
网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。
性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
2.ab的原理
ab是apachebench命令的缩写。
ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
3.ab的安装
ab的安装非常简单,如果是源码安装apache的话,那就更简单了。apache安装完毕后ab命令存放在apache安装目录的bin目录下。如下:
代码语言:javascript复制/usr/local/apache2/bin
可在apache官网下载安装包,也可以访问我提取好的链接下载http://pan.baidu.com/s/1eRVqgBC
4.使用
将ab.exe 放入c盘根目录,菜单输入cmd进入doc窗口,执行
代码语言:javascript复制ab.exe -c 100 -n 1000 http://127.0.0.1/app/login
下面我们对这些参数,进行相关说明。如下:
- -n 在测试会话中所执行的请求个数。默认时,仅执行一个请求。
- -c 一次产生的请求个数。默认是一次一个。
C:>ab.exe -c 100 -n 1000 http://127.0.0.1/app/login
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Apache-Coyote/1.1 #apache版本
Server Hostname: 127.0.0.1 #请求访问的IP
Server Port: 80 #请求访问的端口
Document Path: /app/login #页面地址
Document Length: 65 bytes #页面长度
Concurrency Level: 100 #并发数
Time taken for tests: 0.899 seconds #共使用时间
Complete requests: 1000 #总的请求数
Failed requests: 0 #请求失败数
Write errors: 0
Total transferred: 206000 bytes #总共传输字节数,包含http的头信息等
HTML transferred: 65000 bytes #html字节数,实际的页面传递字节数
Requests per second: 1112.28 [#/sec] (mean) #每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量
Time per request: 89.905 [ms] (mean) #用户平均请求等待时间
Time per request: 0.899 [ms] (mean, across all concurrent requests)#服务器平均处理时间,也就是服务器吞吐量的倒数
Transfer rate: 223.76 [Kbytes/sec] received #每秒获取的数据长度
Connection Times (ms)
min mean[ /-sd] median max
Connect: 0 0 0.3 0 5
Processing: 1 88 210.6 4 894
Waiting: 1 53 146.4 4 654
Total: 1 88 210.7 4 896
Percentage of the requests served within a certain time (ms)
50% 4 # 50%的请求在4ms内返回
66% 6
75% 11
80% 27 # 80%的请求在27ms内返回
90% 459
95% 614
98% 879
99% 887
100% 896 (longest request)
5.Linux安装
代码语言:javascript复制yum install httpd-tools
ab -v