当前位置:首页 > 知识积累 > 正文

ApacheBench 网站性能压测工具

对于 web服务,不管是上新,还是平时产品运营,节假日活动等,在这之前都需要评估现网压力承受能力,提前进行扩容,并做到防患于未然。所以对网站性能压力测试是必不可少的,这样才能充分了解自己部署的 web 服务 QPS。只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题。Apache 中有个自带的,名为 ApacheBench(ab) 的程序,可以对 Apache 或其它类型的服务器进行网站访问压力测试。

ApacheBench 命令原理
ab 命令会创建很多的并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的,因此,既可以用来测试 Apache 的负载压力,也可以测试 nginx、lighthttp、tomcat、IIS 等其它 Web 服务器的压力。

ab 命令对发出负载的计算机要求很低,既不会占用很高 CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似 CC 攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。

一般我们在对 web 服务器进行压力测试时,建议使用内网的另一台或者多台服务器通过内网进行测试,这样得出的数据,准确度会高很多。如果只有单独的一台服务器,可以直接本地测试,比远程测试效果要准确。

使用示例,这里演示使用本地电脑(win10)对特定网站进行测试。

下载安装相关的ApacheBench工具:
linux yum 安装

yum install httpd-tools


yum -y install httpd-tools

win10 安装
首先,需要安装 Apache 服务器,下载地址:

https://www.apachelounge.com/download/

1.png

下载完毕后,得到如下目录:

2.png

直接双击 abs.exe 是无法打开的。

正确的方式是打开cmd命令,进入Apache Bench 的bin目录,启动 abs.exe ,如下图所示:

3.png


对百度进行简单的压力测试(命令):

abs.exe -n 10000 -c 2000 https://www.baidu.com/

参数很多,一般我们用 -n 和 -c 参数就可以了。例如:
    -n 后面的10000,表示总共发出10000 个请求;
    -c 后面的2000 ,表示采用2000个并发(模拟 2000 个人同时访问),
    后面的网址表示测试的目标URL。


详细参数介绍:

https://httpd.apache.org/docs/2.2/programs/ab.html


测试结果:

4.png

常见问题:

如果在运行abs.exe过程中提示:“由于找不到vcruntime140.dll无法继续执行代码”无法运行,这是因为系统安装 Microsoft C 和 C++ (MSVC) 运行时库有问题,重新安装Visual Studio就可以了

https://docs.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?view=msvc-170

6.png

取消
扫码支持 支付码