跳转至

性能指标

  • 时间指标:接口响应时间、业务响应时间
  • 容量指标:接口容量、业务容量
  • 资源利用率指标:操作系统(CPU、IO、Memory、Disk、Network、System)、JVM(GC、Classes)

技术指标不能脱离业务指标,比如:1000万在线用户

20211125164557

其中比较常用的指标有 TPS 和 RT

  • 后台服务:TPS 20 / 200ms
  • 没啥人用的服务:TPS 20 / RT 300ms
  • 十万到百万级的服务:TPS 50 / 200ms
  • 秒杀类短时间高并发服务:TPS100~200 / 100ms

经典示意图(其实不太符合实际)

出处:某白皮书·第18页

20211125165501

比较合理的一张示意图

黄线:RT,蓝线:TPS

20220808153704

TPS

TPS 可以反应出一个系统处理事务的能力

事务就是统计了一段脚本的执行时间,在不同的行业不同业务中定义的粒度是不同的

在具体的项目实施中,有经验的性能测试人员,都会更关心服务端能处理的请求数,即 TPS,而不是压力工具中的线程数

20230829173949

示意图中,有4个并发线程,每个线程1秒内可完成4个事务,所以总TPS是16

20230829174458

涉及到用户数,通常要分析并发度,一般业务中,并发度都会低于5%,甚至低于1%

假设10000个在线用户,并发度为5%,则并发用户数,即TPS为:10000 * 0.05 = 500

响应时间如果为100ms,则达到500TPS需要的并发线程数为:500TPS / (1000ms/100ms) = 50

20230829182604

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),这些进程正在与硬件进⾏不允许中断的交互(系统保护)