1.ab是什么?

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

2.为什么要使用ab?

我做的是游戏支付平台,要求一定要稳定,并发大的时候不能挂,所以上线之前要使用压测工具压测,看看接口的峰值等。

3.linux上安装ab

linux上安装ab非常简单,步骤如下:

1.我是安装在 /usr/local 下,新建一个文件夹 mkdir ab

stress压测服务 服务器压测工具_运维

2.开始安装 yum -y install httpd-tools

stress压测服务 服务器压测工具_操作系统_02

3.测试是否安装成功 ab -V

stress压测服务 服务器压测工具_压测_03

4.ab常用的参数介绍

-n :总共的请求执行数,缺省是1;

-c: 并发数,缺省是1;

-t:测试所进行的总时间,秒为单位,缺省50000s

-p:POST时的数据文件

-T:跟_p一起使用,主要post请求时请求头的信息

5.开始测试

我这次是测试nginx的性能。因为我是post请求,要有请求体、请求头的信息。后端使用了@RequestBody,所以请求体的内容必须是json格式。

下面开始介绍用ab压测的时候post请求的用法:

1.首先在安装路径下,新建一个文件 post.txt,命令如下:

stress压测服务 服务器压测工具_操作系统_04

2.然后打开post.txt文件,将自己的请求体的信息放进去:

stress压测服务 服务器压测工具_stress压测服务_05

3.最重要的命令来了,注意看:

ab -n 100 -c 10 -p post.txt -T 'application/json' 服务器地址:端口号/test.json

这个表示同时处理10个请求并运行100次这个test.json

解释一下 -n是指总共100个请求   -c是指并发数10 -p是指post请求请求体内容 -T是指请求体信息 后面的就是自己的请求地址

4.执行结果

stress压测服务 服务器压测工具_运维_06

比较重要的参数详细解释一下:

//大家最关心的指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值
Requests per second: 122.12 [#/sec] (mean)
 //大家最关心的指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值
 Time per request: 8188.731 [ms] (mean)
 //每个请求实际运行时间的平均值
 Time per request: 8.189 [ms] (mean, across all concurrent requests)