2. SLA核心指标:可用性、延迟、抖动、丢包率、吞吐量的定义与计算
各位好,我是老张。今天咱们聊聊SLA的五个核心指标。说实话,这五个指标我几乎每天都在跟它们打交道。你想想看,一条专线好不好,客户满不满意,说白了就是看这五个数字。
我记得刚入行那会儿,有个客户投诉说网络慢,我查了半天带宽利用率才30%,心想这不挺好吗?后来才发现,延迟和抖动才是罪魁祸首。嗯,从那以后我就明白了——只看一个指标,容易掉坑里。
核心观点:五个指标不是孤立的,它们共同决定了用户体验。任何一个指标出问题,SLA都可能不达标。
2.1 可用性(Availability)
可用性,说白了就是线路能用的时间占比。公式很简单:
可用性 = (总时间 - 故障时间) / 总时间 × 100%
举个例子:一条专线一个月(30天)里,故障了2小时。那么:
可用性 = (720 - 2) / 720 × 100% = 99.72%
我个人习惯用“9”的个数来衡量。99%是两个9,99.9%是三个9,99.99%是四个9。不同等级对应不同的年故障时间:
| 可用性等级 | 年故障时间 | 典型场景 |
|---|---|---|
| 99%(2个9) | 87.6小时 | 普通办公网络 |
| 99.9%(3个9) | 8.76小时 | 企业专线 |
| 99.99%(4个9) | 52.56分钟 | 金融交易系统 |
| 99.999%(5个9) | 5.26分钟 | 核心骨干网 |
避坑指南:我曾经遇到过客户把“可用性”和“连通性”搞混。连通性只是能ping通,可用性还要考虑带宽、延迟等是否达标。别被ping通就以为万事大吉了。
2.2 延迟(Latency)
延迟就是数据从A点到B点的时间。单位通常是毫秒(ms)。
我常用的测量方法是ICMP ping,但说实话,这只能做个参考。真正要测,得用专业的探针或者抓包分析。
# 简单测延迟
ping -c 10 192.168.1.1
# 结果示例
rtt min/avg/max/mdev = 1.234/1.567/2.345/0.123 ms
这里avg就是平均延迟。为什么看平均?因为单次延迟可能有偶然性,取平均更稳定。
延迟的组成其实有三段:
- 传播延迟:光在光纤里跑的时间,物理定律,改不了
- 处理延迟:路由器、交换机处理数据包的时间
- 排队延迟:数据包在队列里等着被转发的时间
你想想看,前两个基本固定,能优化的主要是排队延迟。所以当延迟突然升高时,我第一反应就是——是不是哪里堵了?
2.3 抖动(Jitter)
抖动,就是延迟的变化量。公式:
抖动 = |当前延迟 - 上一个延迟|
或者更专业的:
抖动 = 延迟的标准差
为什么抖动这么重要?我举个例子:你打视频电话,延迟200ms其实还能忍,但如果延迟在100ms到300ms之间来回跳,画面就会一卡一卡的,声音也断断续续。
我的经验:对于VoIP和视频会议,抖动比延迟更致命。我曾经帮一个客户排查视频卡顿问题,延迟只有30ms,但抖动高达50ms。后来发现是某台交换机缓存设置有问题,调整后抖动降到5ms以内,问题解决。
一般建议:
- 语音业务:抖动 < 30ms
- 视频业务:抖动 < 50ms
- 普通数据:抖动 < 100ms
2.4 丢包率(Packet Loss)
丢包率,就是发送的数据包中,有多少没到达目的地。公式:
丢包率 = 丢失的数据包 / 发送的总数据包 × 100%
测丢包,我一般用这个命令:
# 发送1000个包,看丢了多少
ping -c 1000 -i 0.01 目标IP
注意这里的 -i 0.01,间隔10毫秒发一个包,模拟真实业务流量。如果间隔太大,测出来的丢包率可能偏乐观。
丢包率的影响:
- 0%:完美,但现实中很难
- < 0.1%:优秀,大多数业务无感
- 0.1% - 1%:一般,TCP会重传,速度下降
- > 1%:糟糕,视频卡顿、文件传输失败
注意:我曾经遇到一个案例,丢包率只有0.5%,但客户说文件传输特别慢。后来发现是丢包集中在某个时间段,导致TCP频繁进入拥塞控制。所以,不仅要看平均值,还要看分布。
2.5 吞吐量(Throughput)
吞吐量,就是单位时间内能传输的数据量。单位是bps(比特每秒),或者更常用的Mbps、Gbps。
测吞吐量,我推荐用iPerf:
# 服务端
iperf3 -s
# 客户端
iperf3 -c 服务器IP -t 30 -P 4
这里 -t 30 表示测30秒,-P 4 表示用4个并行流。为什么要并行?因为单流可能跑不满带宽,尤其是高延迟链路。
吞吐量和带宽的区别,很多人搞混:
- 带宽:理论最大值,比如你买了100M专线
- 吞吐量:实际能跑到的值,受延迟、丢包、协议等因素影响
说白了,带宽是上限,吞吐量是实际表现。我见过不少客户,买了1G带宽,实际吞吐量只有200M,还以为是运营商的问题。结果一查,是自己的服务器网卡或者磁盘IO跟不上。
2.6 五个指标的关系
这五个指标不是独立的。我画了一张图,帮你理清关系:
你看这张图,五个指标都指向用户体验。任何一个指标出问题,用户体验都会打折。比如:
- 丢包率高 → TCP重传 → 吞吐量下降
- 抖动大 → 视频卡顿 → 用户感知差
- 延迟高 → 吞吐量上不去(TCP窗口限制)
我的建议:做SLA保障时,别只盯着一个指标。我习惯做一个“五维雷达图”,把五个指标都画上去,一眼就能看出短板在哪里。比如延迟和抖动都很好,但丢包率偏高,那问题大概率出在中间链路的某台设备上。
2.7 实战中的计算技巧
最后,分享几个我常用的计算技巧:
- 可用性计算:别按月算,按季度算更合理。一个月偶然故障一次,可用性可能掉到99.5%,但拉长到季度,可能还是99.9%。
- 延迟采样:我一般取P50、P95、P99三个值。P50代表典型值,P95代表大多数情况,P99代表极端情况。
- 抖动计算:用连续采样,别用间隔采样。间隔采样会漏掉短时抖动。
- 丢包率:区分“突发丢包”和“持续丢包”。突发丢包可能是链路切换,持续丢包可能是光衰或设备故障。
- 吞吐量:记得考虑TCP overhead。实际吞吐量 ≈ 带宽 × (1 - 丢包率) × 效率因子(通常0.8-0.95)。
好了,这五个指标的定义和计算就讲到这里。记住,指标是死的,人是活的。关键是要理解每个指标背后的业务含义,这样才能真正做好SLA保障。