# 常用指标
服务运行在线上是否稳定需要看几个指标,你可以根据你系统的具体业务场景着重来看某个指标。以下是整理的一些常用的指标。
##吞吐率(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'
```
## 总结一下
咳咳,到了总结的时候了,压力测试其实还是比较复杂的,我只是一个比较简单的方式说了出来,假如要是深入了解可以调研一下国内用的比较多的压测工具,看看都需要测试哪些方面。
核心其实对应的就是指标。