用平均值衡量响应时间是性能测试中最常见的错误——P99分位数才能反映真实用户体验,SLA(服务等级协议)是连接技术指标与业务承诺的桥梁。
假设系统处理了100个请求:99个在100ms内完成,1个因为数据库锁等待花了10秒。平均响应时间=(99×100+10000)/100≈199ms,看起来"很快",但那1个等了10秒的用户体验极差。在金融交易场景中,这1个慢请求可能是转账超时导致的重复扣款风险。
| 分位数 | 含义 | 银行业典型要求 |
|---|---|---|
| P50(中位数) | 50%的请求快于此值 | ≤ 100ms(不需特别关注) |
| P90 | 90%的请求快于此值 | ≤ 500ms(一般系统基准) |
| P95 | 95%的请求快于此值 | ≤ 1s(重要系统基准) |
| P99 | 99%的请求快于此值 | ≤ 2s(核心系统硬性指标) |
| P999 | 99.9%的请求快于此值 | ≤ 5s(长尾容忍上限) |
SLA(Service Level Agreement,服务等级协议)是对系统性能的量化承诺,定义了"正常"与"异常"的明确边界。在银行业,SLA不仅对内指导性能优化,还是向监管报送、与业务部门对齐预期的核心依据。
| 系统类型 | P50 | P95 | P99 | 可用性 | 错误率 |
|---|---|---|---|---|---|
| 核心账务 | ≤100ms | ≤500ms | ≤1s | 99.99% | ≤0.01% |
| 支付清算 | ≤100ms | ≤500ms | ≤1s | 99.99% | ≤0.01% |
| 网银/手机银行 | ≤300ms | ≤1s | ≤2s | 99.95% | ≤0.1% |
| 信贷审批 | ≤500ms | ≤2s | ≤3s | 99.9% | ≤0.1% |
| 风控引擎 | ≤50ms | ≤200ms | ≤500ms | 99.99% | ≤0.01% |
操作:选取一条核心交易链路,在不同并发梯度下测量P50/P90/P95/P99,绘制分位数-并发曲线,观察各分位数随负载增加的劣化趋势。若P99在50%负载已突破SLA,说明SLA不可达或系统存在严重瓶颈。
操作:对P99以上的慢请求进行逐笔分析,关联应用日志、数据库慢查询日志和GC日志,定位长尾延迟的根因(锁等待、GC停顿、网络抖动、磁盘IO抖动)。