容器化时代ab压测工具新用法

转载地址

原文地址

目标:

通过apache ab 工具进行性能简单压测,获取服务性能。

ab特点:

ab 是针对 HTTP 服务进行性能压力测试的工具,它最初被设计用来测量 Apache 服务器的性能指标,主要用来测试 Apache 服务器每秒能够处理多少请求以及响应时间,但这个命令也可以用来测试通用的 HTTP 服务性能。

运行方式:

ab -k -n 10000 -c 30 http://domain.com

常用参数:

-c concurrency 并发数,即同时向服务器端发送的请求数目,默认:是一次只执行一个http请求.
-n requests 执行一次测试会话的时候所发出的请求数.
-k 表示 keep alive,保持连接,就是说执行多个请求在一个http会话当中,默认:不允许.
-t timelimit:设置测试的时间的长短,使用这个选项ab将自动设置测试请求会话数目为50000,然后以你设置的时间为固定周期.默认状态下是没有时限的,也就是直到完成你所设置的请求数目为止.

其它常用参数

-A auth-username:password :支持基本的验证证书,用户名和密码之间使用"冒号",分隔开,ab将以明文方式传送过去.不管服务器是不是需要,也就是说你的服务器需要支持401认证.
-H custom-header:向请求包追加附加的标题字串.此参数应该是有效的标题行(headerline)形式,通常使用冒号":"来分隔有效配对 (valid  pair)例如 'Accept-Encoding: zip/zop;8 bit';
-p POST-file:测试程序也就是ab,将向Apache server发送带有HTTP POST 的请求.
-P proxy-auth-username:password:当需要通过代理测试一台HTTP服务器的时候而你的代理又需要用户名密码验证,这时你可以使用这个选项,同样用户名与密码之间使用冒号":"分隔开,ab将之以明文的方式发送出去,当然,前提是你的代理是处于407认证状态.
-T content-type:内容类型标头,使用在POST数据的时候.
-v verbosity:设置冗余级别,4级打印出每个请求标头的详细信息,3级打印出回应代码(例如,404,200),2级打印出警告 信息和指示消息.
-w  :打印输出结果到HTML表中. 默认的表是两列n行白底黑框

压测结果的几个核心概念

吞吐率

Requests per second
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests

吞吐率结果-实例:

Requests per second: 414.19 [#/sec] (mean)
//吞吐率:核心指标之一,相当于LR中的每秒事务数,后面括号中的 mean 表示这是一个平均值

用户平均请求等待时间

Time per request
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)

用户平均请求结果-实例:

Time per request: 241.434 [ms] (mean)
//用户平均请求等待时间,核心指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值.

服务器平均请求等待时间

Time per request: across all concurrent requests
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。同时,它也=用户平均请求等待时间/并发用户数,即Time per request / Concurrency Level.

服务器平均请求结果-实例:

Time per request: 2.961 [ms] (mean, across all concurrent requests)
#核心指标之三,每个连接请求实际运行时间的平均值

其它重要压测结果

#测试的并发数
Concurrency Level: 300

#整个测试持续的时间
Time taken for tests: 1.846 seconds

#完成的请求数量
Complete requests: 4000

#失败的请求数量
Failed requests: 0

压测的新方式:

容器时代到来,压测性能通常在Kubernetes集群或者Docker 环境,所以我们要调整一下新节奏,找一个docker 容器指向压测:

推荐使用docker镜像如下:

russmckendrick/ab 
piegsaj/ab
jordi/ab

纯docker环境运行方法如下:

请移步原站查看:
原文地址

参考信息:

http://www.ha97.com/4617.html
https://wangchujiang.com/linux-command/c/ab.html
https://www.jianshu.com/p/43d04d8baaf7

猜你喜欢

转载自blog.51cto.com/michaelkang/2491751