Apache Bench多并发压测猫框,它怎么能这样扛?

2023-01-03 16:45:09 浏览数 (1)

很多人问并发这个东西,特别是老狐友,很喜欢跑过来问并发多少,你可以支持多少人?

这个其实是伪命题

  1. 访问并发并不是一个问题,而是一个体系问题。
  2. 体系问题,要找出体系中的瓶颈。
  3. 针对瓶颈再去解决并发的问题。 该堆配置要堆配置,要做负载均衡要做负载均衡,要上缓存时要上缓存,数据库要做读写分离就做读写问题

相应压测工具能够早点让我们发现系统中的瓶颈所在。

1. Apache Bench 简介

Apache Bench 是 Apache 服务器自带的一个web压力测试工具,简称 ab 。

ab 非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

其实socket服务器也是能用其来测试的。

2. 压测原理

Apache Bench的原理:ab命令会创建 多个并发 访问线程,模拟 多个访问者 同时对某一 URL地址 进行访问。

它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

优点:命令行工具, 发出负载的计算机要求很低,其原理类似CC攻击,少量的测试机资源会给目标服务器造成巨大的负载,自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。工具小巧简单,上手学习较快,可以提供需要的基本性能指标。

缺点:基本性能指标没有图形化结果,不能监控。

3. 安装方式

首先,需要安装 Apache 服务器,下载地址:https://www.apachelounge.com/download/ ,

因为我是64位操作系统选,所以选择上面的一个压缩包,如下图所示:

解压后:

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

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

4.命令介绍

使用命令

ab一般常用参数就是 -n, -t ,和 -c。

-c(concurrency)表示用多少并发来进行测试;

-t表示测试持续多长时间,单位是秒;

-n表示要发送多少次测试请求。

一般-t或者-n选一个用。

GET

对于模拟GET请求进行测试,ab非常简单,就是:ab -n 100 -c 10 http://127.0.0.1:801/a1send.fsp?proc=send

POST

对于模拟POST请求进行测试,则稍微复杂些,需要把将要post的数据(一般是json格式或键值对)放在文件里。比如建立一个文件以c:postdata.txt,放入:

{"name":"123"}

然后用-p参数解析并发送这个json数据:

ab -n 100 -c 50 -p c:postdata.txt -T application/x-www-form-urlencoded http://192.168.0.99:801/a3post.fsp?proc=post

5. 测试猫框调试服务器结果解读

猫猫对调试服务器来测试一下看看,结果如下:

调试服务器一般用于开发环境(开发阶段,快速方便),不建议用于正式环境。

重要指标:

Requests per second: 最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值Time per request: 最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值Time per request: 每个连接请求实际运行时间的平均值Transfer rate: 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

猫猫把这两个工具单独提取了,可以访问如下链接下载。

https://cloud.189.cn/t/NfquYjIzE7vy (访问码:ri73)

0 人点赞