性能指标¶
- 时间指标:接口响应时间、业务响应时间
- 容量指标:接口容量、业务容量
- 资源利用率指标:操作系统(CPU、IO、Memory、Disk、Network、System)、JVM(GC、Classes)
技术指标不能脱离业务指标,比如:1000万在线用户
其中比较常用的指标有 TPS 和 RT
- 后台服务:TPS 20 / 200ms
- 没啥人用的服务:TPS 20 / RT 300ms
- 十万到百万级的服务:TPS 50 / 200ms
- 秒杀类短时间高并发服务:TPS100~200 / 100ms
经典示意图(其实不太符合实际)
出处:某白皮书·第18页
比较合理的一张示意图
黄线:RT,蓝线:TPS
TPS¶
TPS 可以反应出一个系统处理事务的能力
事务就是统计了一段脚本的执行时间,在不同的行业不同业务中定义的粒度是不同的
在具体的项目实施中,有经验的性能测试人员,都会更关心服务端能处理的请求数,即 TPS,而不是压力工具中的线程数
示意图中,有4个并发线程,每个线程1秒内可完成4个事务,所以总TPS是16
涉及到用户数,通常要分析并发度,一般业务中,并发度都会低于5%,甚至低于1%
假设10000个在线用户,并发度为5%,则并发用户数,即TPS为:10000 * 0.05 = 500
响应时间如果为100ms,则达到500TPS需要的并发线程数为:500TPS / (1000ms/100ms) = 50
RT¶
响应时间的拆分和定位,是非常重要的一个环节
网络指标¶
带宽 bandwidth¶
指单位时间内信道理论上能传输的最大数据量
- 电气领域:指的是模拟带宽,单位:Hz(赫兹)
- 计算机领域:指的是数字带宽,单位:bps(比特率) 或 Bps(字节率)
十进制:用K、M、G等表示,1K=1000,比如1Kbps,表示1000比特每秒
二进制:用Ki、Mi、Gi等表示,1Ki=1024,比如1KiBps,表示1024字节每秒
全双工系统的带宽是半双工系统的两倍
吞吐量 throughput¶
指单位时间内信道实际能传输的数据量
信息传输速率限制¶
香农公式指出了信息的传输速率上限,信道的带宽或信道中的信噪比越大,上限就越高
在带宽不变,信噪比不能再提高后,若想提高信息传输速率,可以用编码的方法让每个码元携带更多的信息
码元传输速率限制¶
在任何信道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判别成为不可能
信噪比¶
随机产生的噪声存在于所有的电子设备和通信信道中
信噪比(dB,分贝) = 信号的平均功率(S) / 噪声的平均功率(N)
时延 delay¶
存储转发的过程中,虽然计算机自动处理,但也仍然避免不了会有一定的时延
- 发送时延
- 传播时延
- 处理时延
- 排队时延
- 往返时延:RTT(Round Trip Time)双向交互一次的时间
利用率¶
- 信道利用率,有数据通过的时间占比,并非越高越好
- 网络利用率,全网信道利用率的加权平均值
Load Average¶
可使用
uptime
命令查看,结果其实就是top
命令返回的第一行信息
平均负载,指单位时间内处于可运⾏状态和不可中断状态的进程数,负载过⾼可能会导致进程响应变慢进⽽影响服务的正常功能
- 可运⾏状态的进程(R):正在使⽤CPU的进程(Running)、正在等待CPU的进程(Runnable)
- 不可中断状态的进程(D):正在等待I/O的进程(Disk Sleep),这些进程正在与硬件进⾏不允许中断的交互(系统保护)