在使用ab压力测试工具之前,首先我们要了解几个关于压力测试的概念
吞吐率
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests
并发连接数
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
并发用户数
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
用户平均请求等待时间
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
服务器平均请求等待时间
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level
ab工具简介
ab 全称为:apache bench
在官网上的解释如下:
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
其他网站解释:
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
使用ab压力测试工具
注:
本次使用ab压力测试工具在虚拟机上使用,若操作者pc没有安装虚拟机,参考https://blog.csdn.net/guan_xiao_nan/article/details/79427938?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164420419516780271593273%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164420419516780271593273&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-79427938.first_rank_v2_pc_rank_v29&utm_term=%E7%94%B5%E8%84%91%E5%AE%89%E8%A3%85vmware&spm=1018.2226.3001.4187 进行下载
虚拟机配置链接
https://blog.csdn.net/davidhzq/article/details/101494147?ops_request_misc=&request_id=&biz_id=102&utm_term=vmware%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-101494147.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187
Mac安装配置链接
https://juejin.cn/post/6910018134191636488#heading-8
注:
如果没有镜像可以找我要
以上就是安装和配置,完成以后进行ab压力测试的安装
进入虚拟机系统 右键 找到 打开终端
输入安装指令 yum -y install httpd-tools
安装成功效果图如下
ab -v 查看ab版本
ab --help
压力测试指令
ab -n1000 -c 10 压力测试网址/ 结尾的/一定要加
ab -n1000 -c 10 http://www.fuqicloud.com/
这里用公司网站进行压力测试 ,-n访问1000次, -c并发10个(这里就相当于10个用户)
测试效果如下
详细解释如下:
Server Software: BWS/1.1 #服务器软件
Server Hostname: www.baidu.com #域名
Server Port: 80 #请求端口Document Path: / #文件路径
Document Length: 343480 bytes #页面字节数
Concurrency Level: 10 #请求的并发数
Time taken for tests: 110.401 seconds #总访问时间
Complete requests: 1000 #请求成功数量
Failed requests: 981 #请求失败数量
Total transferred: 344707298 bytes #请求总数据大小(包括header头信息)
HTML transferred: 343519184 bytes #html页面实际总字节数
Requests per second: 9.06 [#/sec] (mean) #每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量
Time per request: 1104.006 [ms] (mean) #用户平均请求等待时间
Time per request: 110.401 [ms] (mean, across all concurrent requests)
# 服务器平均处理时间,也就是服务器吞吐量的倒数
Transfer rate: 3049.15 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 37 103 90.9 77 1357
Processing: 243 992 930.7 705 8814
Waiting: 39 116 89.5 90 800
Total: 298 1094 922.1 807 8859
Percentage of the requests served within a certain time (ms)
50% 807 50%用户请求在807ms内返回
66% 939 66%用户请求在939ms内返回
75% 1049 75%用户请求在1049ms内返回
80% 1180 80%用户请求在1180ms内返回
90% 1834 90%用户请求在1834ms内返回
95% 3014 95%用户请求在3014ms内返回
98% 4269 98%用户请求在4269ms内返回
99% 5448 99%用户请求在5448ms内返回
100% 8859 (longest request)