1. 从“快”到“多”:高并发系统的性能指标全景图
刚入行那会儿,我最怕的就是性能压测报告。看着上面密密麻麻的QPS、TPS、RT、吞吐量,感觉每个字母都认识,但组合在一起就让人头大。项目经理指着报告问:“咱们系统到底能抗住多少人?”我支支吾吾,只能回答“应该还行”。后来踩过不少坑,比如明明QPS看着挺高,但用户却反馈卡顿;或者压测时TPS达标了,一上线却直接宕机。我才明白,这些指标从来都不是孤立存在的数字,它们是一个立体网络,共同描绘了系统的“健康图谱”。今天,我就把这些年摸爬滚打总结出的经验,用最直白的话分享给你,帮你彻底理清从QPS到吞吐量这一系列核心性能指标的门道。
简单来说,你可以把高并发系统想象成一个繁忙的高速公路收费站。QPS(每秒查询数) 就像是一分钟内有多少辆车开到了收费窗口前,它只关心“来了多少辆车”这个动作。TPS(每秒事务数) 则更严格,它要求车辆完成“停车、交费、抬杆、离开”这一整套完整的流程,才算一次有效计数。而吞吐量,就是这条收费站在一段时间内,实际成功放行的所有车辆的总和,它综合了车流量和通行效率。至于响应时间(RT),就是每辆车从开始排队到完全离开所花费的时间,它直接决定了司机的体验。我们做性能优化,终极目标就是让这条“高速公路”在车流量巨大(高QPS)的情况下,还能让每辆车快速通过(低RT),并且确保绝大部分车辆都能完成缴费通行(高TPS与吞吐量),而不是堵在门口或者被劝返。
2. 拆解核心指标:它们到底在说什么?
2.1 QPS:系统门口的“人流量计数器”
QPS,全称是Query Per Second,中文叫“每秒查询率”。这个名字有点误导性,它其实不局限于数据库查询,任何一次对服务器的请求,比如打开一个网页、点击一个按钮、调用一个API,都可以算作一个“Query”。我更喜欢把它叫做 “请求吞吐率”。
它的计算方式很简单:QPS = 总请求数 / 耗时(秒)。比如,一个API在10秒内被调用了5000次,那么它的QPS就是500。这个指标非常直观,能快速告诉你系统的“热闹程度”。在压测时,我们通常会逐步增加并发请求数,观察QPS的变化曲线。一开始,QPS会随着并发数的增加而线性增长,这说明系统资源充足。但增长到某个点后,曲线会变得平缓甚至下降,这个拐点就是系统当前的处理极限。
这里有个常见的误区:QPS高不等于系统快。我遇到过这样一个案例:一个商品列表页的QPS能达到2000,看起来很高。但进一步分析发现,因为数据库查询没有优化,每个请求的RT高达2秒。这意味着虽然请求很多,但每个用户都要等很久,体验极差。同时,大量请求堆积在服务器线程池里,持续占用内存和连接,最终可能导致系统雪崩。所以,QPS必须结合RT来看。


147

被折叠的 条评论
为什么被折叠?



