高并发经常会涉及到各种指标,下面详解TPS/QPS/并发数这三者的区别@mikechen
TPS
首先,TPS(Transactions Per Second,事务每秒),通常用于衡量系统在单位时间内成功处理的事务数量。
事务,往往包含多个操作步骤或数据库变更,强调完整性的处理单元及其成功提交。

一个事务,是客户端向服务器端发送请求后,服务器端完成该请求的整个处理过程。
比如:一个下单包含:
下单接口 + 扣库存 + 写订单表,→ 成功完成 1 次,计 1 TPS。
TPS, 常用于评估系统在事务性工作负载下的吞吐能力。
QPS
其次,QPS(Queries Per Second,查询每秒),原本多用于衡量查询类请求的处理速率。

比如:每秒处理 10,000 次 HTTP 请求;
→ QPS = 10,000
尤其在搜索、缓存或数据库读操作场景下常见。
QPS 更侧重于单次请求或查询的数量,对于无状态的、读多于写的场景尤为适用。
在很多工程实践中,QPS 与 TPS 的差别取决于“请求”是否等同于“事务”。
并发数
最后,并发数(Concurrency),指的是系统在同一时刻同时存在的活动请求数、或连接数。

比如:当前系统里有 500 个请求还没结束,→ 并发数 = 500。
并发数,影响资源占用(如线程、连接、内存)和响应时延,但并不直接等于单位时间的处理速率。
三者的关系
可概括为:并发数决定了系统同时处理请求的规模,进而影响在单位时间内能完成的事务或查询数(即 TPS/QPS)。
而 TPS/QPS ,则是衡量随时间推移系统吞吐能力的指标。
QPS 和 TPS 在很多接口级压测场景下,可以近似等同,但严格含义有差别。
一次“页面访问 / 下单流程”,通常算 1 个 TPS。
这次访问可能产生多个后端请求(查商品、查库存、写订单等),这些请求的总次数是 QPS。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》