ab命令压力测试网站性能
网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。
性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
下面我们开始介绍有关ab命令的使用:
1、ab的原理
2、ab的安装
3、ab参数说明
4、ab性能指标
5、ab实际使用
一、ab的原理
ab是apachebench命令的缩写。
ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
二、ab的安装
ab的安装非常简单,如果是源码安装apache的话,那就更简单了。apache安装完毕后ab命令存放在apache安装目录的bin目录下。如下:
/usr/local/apache2/bin
如果apache 是通过yum的RPM包方式安装的话,ab命令默认存放在/usr/bin目录下。如下:
which ab
注意:如果不想安装apache但是又想使用ab命令的话,我们可以直接安装apache的工具包httpd-tools。如下:
yum -y install httpd-tools
查看ab是否安装成功
- 命令:
ab
或ab -help
- 显示命令参数如下
三、ab参数说明
此外,我们再根据上面的用法介绍界面来详细了解每个参数选项的作用。-n 即requests,用于指定压力测试总共的执行次数。
-c 即concurrency,用于指定的并发数。
-t 即timelimit,等待响应的最大时间(单位:秒)。
-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v 即verbosity,指定打印帮助信息的冗余级别。
-w 以HTML表格形式打印结果。
-i 使用HEAD请求代替GET请求。
-x 插入字符串作为table标签的属性。
-y 插入字符串作为tr标签的属性。
-z 插入字符串作为td标签的属性。
-C 添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X 指定使用的和端口号,例如:"126.10.10.3:88"。
-V 打印版本号并退出。
-k 使用HTTP的KeepAlive特性。
-d 不显示百分比。
-S 不显示预估和警告信息。
-g 输出结果信息到gnuplot格式的文件中。
-e 输出结果信息到CSV格式的文件中。
-r 指定接收到错误信息时不退出程序。
-h 显示用法信息,其实就是ab -help。
四、ab性能指标
在进行性能测试过程中有几个指标比较重要:
1、吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关
b、不同的并发用户数下,吞吐率一般是不同的
计算公式:总请求数/处理完成这些请求数所花费的时间,即
Request per second=Complete requests/Time taken for tests
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
2、并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3、并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
4、用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:
Time per request=Time taken for tests/(Complete requests/Concurrency Level)
5、服务器平均请求等待时间(Time per request:across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间/总请求数,即:
Time taken for/testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也等于用户平均请求等待时间/并发用户数,即
Time per request/Concurrency Level
五、ab的使用
- 模拟并发请求100次,总共请求10000次
- 命令模板:
ab -c 100 -n 10000 待测试网站(建议完整路径)
- 简单解释:并发访问量过大 服务器拒绝访问,理论上通过系统配置,可以有更好的承受能力
Server Software: nginx/1.10.2 (服务器软件名称及版本信息) Server Hostname: 192.168.1.106(服务器主机名) Server Port: 80 (服务器端口) Document Path: /index1.html. (供测试的URL路径) Document Length: 3721 bytes (供测试的URL返回的文档大小) Concurrency Level: 1000 (并发数) Time taken for tests: 2.327 seconds (压力测试消耗的总时间) Complete requests: 5000 (的总次数) Failed requests: 688 (失败的请求数) Write errors: 0 (网络连接写入错误数) Total transferred: 17402975 bytes (传输的总数据量) HTML transferred: 16275725 bytes (HTML文档的总数据量) Requests per second: 2148.98 [#/sec] (mean) (平均每秒的请求数) 这个是非常重要的参数数值,服务器的吞吐量 Time per request: 465.338 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间) Time request: 0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间) Transfer rate: 7304.41 [Kbytes/sec] received 每秒获取的数据长度 (传输速率,单位:KB/s) ... Percentage of the requests served within a certain time (ms)50% 347 ## 50%的请求在347ms内返回 66% 401 ## 60%的请求在401ms内返回 75% 43180% 51690% 60095% 84698% 157199% 1593100% 1619 (longest request)
- 测试机与被测试机要分开
- 不要对线上的服务器做压力测试
- 观察测试工具ab所在机器,以及被测试的前端机的CPU、内存、网络等都不超过最高限度的75%
ab命令压力测试网站性能相关推荐
- ab命令压力测试攻击
ab命令压力测试攻击 注:本尘埃の客栈所有文章均为技术分享,用于研究和复现漏洞,请勿非法用于其他用途,否则后果自负! ab命令攻击 ab命令全称为:Apache bench .是Apache自带的压力 ...
- 从零开始的Nginx [ 8 ] --- nginx 的性能优化:ab接口压力测试工具,tomcat企业运维,WEB站点部署,项目上线
文章目录 nginx 性能优化 1.当前系统结构瓶颈 2.了解业务模式 3.性能与安全 4.系统与nginx性能优化 1.文件句柄 2.设置方式 3.系统全局性修该和用户局部性修改 4.进程局部性修改 ...
- [SQL Server]用于压力测试和性能分析的两个支持实用工具[转]
微软有两个不提供支持服务的SQL Server压力测试和性能分析工具.具体看微软知识库: http://support.microsoft.com/?kbid=887057 分别是: Read80Tr ...
- 使用Apache自带的ab命令测试网站性能(小强性能测试班学员作品)
Apache自带的ab命令虽然很简单,但是对于调试的时候的测试,还是非常有效的,因此,做网站性能测试,还是有必要了解下的,关于ab详细命令,本文不做介绍,本文只介绍使用POST数据的使用方法. 测试环 ...
- 压力测试网站_一行命令就能网站压力测试和网站故障排除
前言 建好一个网站之后,想试试网站访问效果如何,能不能经受大家访问压力测试.现在介绍一下一行命令简单实现. 利用压力测试的软件--apache出的apache benchmark,命令简称为ab.又称 ...
- 使用ab进行压力测试详解
当你使用PHP(或其他编程语言)完成一个web程序的开发,并且web程序在Apache服务器上正常运行的时候,你有没有考虑过对你的Apache服务器及部署在其上的web程序进行一些压力测试呢?毕竟,真 ...
- Linux学习13-CentOS安装ab做压力测试
前言 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一,测试环境准备好了后,如何对网站做压力测试? 压力测试的工具很多,如:ab.http_load.webbench.siege.jmeter ...
- ab.exe压力测试
转载:https://www.cnblogs.com/TingJie/articles/4974885.html 当你使用PHP(或其他编程语言)完成一个web程序的开发,并且web程序在Apache ...
- ab进行压力测试详解
当你使用PHP(或其他编程语言)完成一个web程序的开发,并且web程序在Apache服务器上正常运行的时候,你有没有考虑过对你的Apache服务器及部署在其上的web程序进行一些压力测试呢?毕竟,真 ...
最新文章
- 【数据竞赛】CV赛题总结:人民币面值与编码识别
- win10+anaconda3在 安装后‘conda‘ 不是内部或外部命令,也不是可运行的程序
- boost::intrusive::get_parent_from_member用法的测试程序
- Apache ECharts各种图表页面展示
- word List 11
- java模块依赖关系_链接模块依赖关系未解决
- 如何开发Linux内核?
- 程序人生-Hello’s P2P
- JAVA类加载机制详解
- 到底学机械好还是学计算机好,大学同学一个选择学机械,另一个学计算机,对比5年后收入蒙了...
- Cura Engine 源码解析:Settings
- 用云开发搭建的微信答题小程序v1.0
- 联想sr550服务器虚拟机,联想(Lenovo)SR550
- 工业过程控制领域中通信
- CRP原理的简单例子
- 低通,高通,带通滤波器,π型滤波器的工作原理
- ReSharper配置及用法
- 2021-基于深度学习的人脸检测综述文献-摘要
- 涪陵创新计算机学校2015元旦晚会,涓涓之情助力成才丨重庆市涪陵创新计算机学校助推纳雍脱贫...
- python scrapy 爬取妹子图的照片
热门文章
- 如何改变控制台的编码格式
- ADSP-21489的开发详解:VDSP+自己编程写代码开发(4-按键控制 LED 灯)(含源代码)
- shell下 php脚本,shell脚本--php执行普通shell命令
- Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构
- 自制STC单片机下载电路,再也不用人工干预了
- OneNote的安装教程 如何解决Win10登录微软账号报错问题
- 写的一个轻量级javascript框架的设计模式
- 《思科数据中心I/O整合》一2.13 VEB:虚拟以太网桥接
- HTML小项目之双色球
- 行业 || IG夺冠 游戏电竞是一代人与一代人梦想的交叠