Linux下ab压力测试

1.前言

1.1声明

文章中的文字可能存在语法错语以及标点错误,请谅解;

如果在文章中发现代码错误或其它问题请告知,感谢!

2.关于ab

2.1ab简介

ab是apache bench的缩写。ab在官网上的描述为:ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
当然,ab不仅仅能进行基于apache服务器的压力测试,也能够对nginx、tomacat以及IIS等服务器进行访问压力测试。
所谓ab压力测试,就是在主机端使用ab工具,模拟多个客户端同时访问服务器,以测试服务器的负载能力。

2.2ab工作原理

在开启ab命令后,ab会创建多个并发访问线程,也就是多个访问客户端同时对某一个网站(URL地址)进行访问。
需要注意的是,ab对主机要求不高,不会占用太多的CPU和内存,但是会对服务器造成很大的负载负担,若要对测试的服务进行ab测试,需要注意不要设置太多的模拟客户端。

2.3ab安装

在终端输入:sudo apt-get install apache2-utils 完成安装

3ab的使用

ab的命令参数比较多,但是我们常用的就是-c和-n参数,-c表示模拟并发的客户端数量,-n表示一共模拟访问的次数。模拟访问次数除以客户端就是每个客户端所发送的访问请求。
命令:ab -n Number1 -c Number2 -l url
实例:ab -n 1000 -c100 -l http://www.dlmu.edu.cn/
测试结果:
这里写图片描述
下面对结果截取进行分析:
这里写图片描述
这一部分说明了测试的服务器采用的是YxlinkWAF,域名是www.dlmu.edu.cn,访问的端口为80
这里写图片描述
这一部分说明了请求的URL的路径所在位置是根目录,HTTP相应数据的正文长度为可变。
这里写图片描述
这一块可以看到:
模拟的客户端(Concurrency Level)的数量是10;
所有这些请求被处理完成所花费的总时间(Time taken for tests)为451.582秒;
访问请求的总数量(Complete requests)为10000;
失败的请求数量(Failed requests)为0;
所有请求的响应数据长度总和(Total transferred,包括每个HTTP响应数据的头信息和正文数据的长度)51009000bytes;
所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度(HTML transferred)为50652000bytes;
吞吐率(Requests per second,总访问请求数/处理这些请求所花费的时间)为2.21秒;
客户端平均请求等待时间(Time per request,处理完所有请求所花费的时间/(总访问请求数/模拟客户端))为:4525.823ms;
服务器平均请求等待时间(第二个Time per request,1/吞吐率):451.582ms;
这些访问请求在单位时间内从服务器获取的数据长度(Transfer rate):110.31Kbytes/sec。
这里写图片描述
这一块表示网络消耗的时间分解
这里写图片描述
这一块表示每个请求处理时间的分布情况,50%的处理时间在2643ms之内,66%处理时间在4639ms之内……,不过重要的是看90%的处理时间。

4总结

ab工具使用方便,上手较快,可以提供查看服务器性能的基本指标,但是不能够以图形化的形式展现,也不能监控,所以可以做临时的、简单的服务器性能测试。同类型的压力测试工具还有:webbench、siege等。

以上。
参考文档:
https://www.cnblogs.com/myvic/p/7703973.html
https://blog.csdn.net/byxdaz/article/details/47442535
https://www.jianshu.com/p/43d04d8baaf7

猜你喜欢

转载自blog.csdn.net/wangqingchuan92/article/details/79740060
今日推荐