压力测试

常用指标

服务运行在线上是否稳定需要看几个指标,你可以根据你系统的具体业务场景着重来看某个指标。以下是整理的一些常用的指标。
##吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests

并发连接数(The number of concurrent connections)

概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

并发用户数(The number of concurrent users,Concurrency Level)

概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

用户平均请求等待时间(Time per request)

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

服务器平均请求等待时间(Time per request: across all concurrent requests)

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

ab压力测试工具

有了指标其实咱们就知道测试的方向了,但是具体怎么测就需要一个比较好用并且通用的工具了,接下来就是我要说的测试工具,比较通用,基本上通过命令就可以安装,window也可以使用。

安装ab工具

yum install httpd-tools

比较简单,通过命令直接安装

ab常用参数

这里需要说下,咱们就普及一下常用就参数就够了,需求更高端的方式,安装好后直接执行命令ab就会有所有的选项了,到时候自己看下就Ok了。
参数说明

-n:执行的请求个数,默认时执行一个请求

-c:一次产生的请求个数,即并发个数

-p:模拟post请求,文件格式为gid=2&status=1,配合-T使用

-T:post数据所使用的Content-Type头信息,如果-T 'application/x-www-form-urlencoded'
哈哈,来个栗子补补肾

GET请求demo

ab -c 10 -n 10 http://www.baidu.com/s?wd=压测工具

这个太简单,没啥挑战性。

POST请求

在当前目录下创建一个文件post.txt
编辑文件post.txt写入
id=4&status=1
相当于post传递id,status参数
竟然需要文件配合了,复杂点了哈

ab -n 100  -c 10 -p 'post.txt' -T 'application/x-www-form-urlencoded' 'http://baidu.com'

总结一下

咳咳,到了总结的时候了,压力测试其实还是比较复杂的,我只是一个比较简单的方式说了出来,假如要是深入了解可以调研一下国内用的比较多的压测工具,看看都需要测试哪些方面。
核心其实对应的就是指标。

# coding  linux  shell 
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×