高并发下,TPS/QPS/并发数这三者的区别?

高并发经常会涉及到各种指标,下面详解TPS/QPS/并发数这三者的区别@mikechen

TPS

首先,TPS(Transactions Per Second,事务每秒),通常用于衡量系统在单位时间内成功处理的事务数量。

事务,往往包含多个操作步骤或数据库变更,强调完整性的处理单元及其成功提交。

高并发下,TPS/QPS/并发数这三者的区别?

一个事务,是客户端向服务器端发送请求后,服务器端完成该请求的整个处理过程。

比如:一个下单包含:

下单接口 + 扣库存 + 写订单表,→ 成功完成 1 次,计 1 TPS。

TPS, 常用于评估系统在事务性工作负载下的吞吐能力。

 

QPS

其次,QPS(Queries Per Second,查询每秒),原本多用于衡量查询类请求的处理速率。

高并发下,TPS/QPS/并发数这三者的区别?

比如:每秒处理 10,000 次 HTTP 请求;

→ QPS = 10,000

尤其在搜索、缓存或数据库读操作场景下常见。

QPS 更侧重于单次请求或查询的数量,对于无状态的、读多于写的场景尤为适用。

在很多工程实践中,QPS 与 TPS 的差别取决于“请求”是否等同于“事务”。

 

并发数

最后,并发数(Concurrency),指的是系统在同一时刻同时存在的活动请求数、或连接数。

高并发下,TPS/QPS/并发数这三者的区别?

比如:当前系统里有 500 个请求还没结束,→ 并发数 = 500。

并发数,影响资源占用(如线程、连接、内存)和响应时延,但并不直接等于单位时间的处理速率。

 

三者的关系

可概括为:并发数决定了系统同时处理请求的规模,进而影响在单位时间内能完成的事务或查询数(即 TPS/QPS)。

而 TPS/QPS ,则是衡量随时间推移系统吞吐能力的指标。

QPS 和 TPS 在很多接口级压测场景下,可以近似等同,但严格含义有差别。

一次“页面访问 / 下单流程”,通常算 1 个 TPS。

这次访问可能产生多个后端请求(查商品、查库存、写订单等),这些请求的总次数是 QPS。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧