性能指标可以分为四大类:吞吐(QPS/TPS)、延迟(P99/P999)、错误率(error/timeout)、资源使用(CPU/内存)。
在分布式系统中,还需要关注链路延迟和依赖成功率;在交易所场景中,还会重点关注撮合延迟、订单成功率和资金一致性。
QPS:每秒请求数(接口层),衡量的是系统并发能力和吞吐量 3000
TPS:每秒事务数(业务层),衡量的是系统写操作能力 500300050ms
RT:平均响应时间 10
P99:99%请求的延迟,为用户体验 100ms
P95: 95%请求的延迟
P50: 50%请求的延迟
SkyWalking 可以观测接口的吞吐量(类似QPS)、平均响应时间以及P95/P99延迟,同时还能提供分布式调用链分析。但TPS属于业务指标,一般需要通过特定接口的QPS来近似。对于CPU、内存等资源指标,通常需要结合Prometheus和Grafana一起使用。
- 定义
QPS(Queries Per Second):
表示系统每秒处理的查询请求数。
通常用于衡量系统的读操作能力,例如数据库查询、API 请求等。
例如:一个搜索引擎每秒可以处理 1000 次查询,其 QPS 就是 1000。TPS(Transactions Per Second):
表示系统每秒处理的事务数。
通常用于衡量系统的写操作或完整业务操作能力,例如数据库事务、支付交易等。
例如:一个支付系统每秒可以处理 500 笔交易,其 TPS 就是 500。
区别
QPS 更侧重于请求的吞吐量,通常用于衡量系统的查询能力。
TPS 更侧重于事务的完整性,通常用于衡量系统的业务处理能力联系
QPS 和 TPS 的关系:
如果一个事务包含多个查询请求,那么 TPS 可能会小于 QPS。
例如:一个支付事务可能包含查询余额、扣款、记录日志等多个操作,此时 TPS 是 1,而 QPS 可能是 3。
性能优化的侧重点:
提高 QPS 通常需要优化查询性能(如索引、缓存等)。
提高 TPS 通常需要优化事务处理能力(如锁机制、分布式事务等)