80后聊架构:架构设计中两个重要指标,延时与吞吐量(Latency vs Throughput) | 架构师之路

开发 架构
有朋友问我说,架构优化时,什么时候要重点优化延时,什么时候要重点优化吞吐量?

《架构师之路:架构设计中的100个知识点》三:延时与吞吐量

有朋友问我说,架构优化时,什么时候要重点优化延时,什么时候要重点优化吞吐量?

画外音:补充阅读材料在最后。

延时(Latency)与吞吐量(Throughput)是架构设计中非常重要,又非常容易搞混的两个指标。

什么是延时?

延时是指完成某个动作所需要的时间。

返回一个HTTP请求的时间是200毫秒,我们说请求的延时是200毫秒。

生一个孩子的时间是10个月,我们说生孩子延时是10个月。

什么是吞吐量?

吞吐量是指单位时间内完成某个动作的次数。

一个请求的处理时间是200毫秒,单线程每秒钟可以处理5个请求,我们就说其的吞吐量是每秒5次。

10个月能生一个孩子,我们就说生孩子的吞吐量是每10月1个。

延时和吞吐量有什么关系?

一般来说,降低延时可以提升吞吐量。

例如:200毫秒处理一个请求,优化为100毫秒处理一个请求,吞吐量就由5提升为10了。

但是,不降低延时也可以提升吞吐量。

例如:单线程200毫秒处理一个请求,线程数增加到10,吞吐量就由5提升为50了。

画外音:假如CPU不是瓶颈。

有时候,延时是很难降低,此时不能靠降低延时增加吞吐量。

例如:生孩子的延时就必须是10个月。

此时,提升吞吐量的方法只能多个家庭并发一起生。

回到开篇的问题,架构优化时,什么时候要重点优化延时,什么时候要重点优化吞吐量?

对于大规模系统的架构设计而言:

  • 延时,延时更多是性能(performance)指标,关乎单用户体验。
  • 吞吐量,吞吐量是扩展性(scalability)指标,关乎同时能服务多少客户。

系统的性能,是有天花板的,延时不能无限优化,不可能降到0。

系统的扩展性,理论上是无限的,架构合理的话,吞吐量可以无限提升,能同时为无限多的用户同时服务。

一句话来回答这个问题:

  • 一个用户慢,就去优化延时。
  • 多个用户扛不住,就去优化吞吐量。
责任编辑:赵宁宁 来源: 架构师之路
相关推荐

2024-11-13 06:03:45

架构设计架构系统

2024-11-13 14:52:58

2023-08-20 12:21:18

软件开发架构设计

2018-11-23 09:52:24

架构设计架构师

2019-09-27 09:56:31

软件技术硬件

2018-07-03 15:46:24

Java架构师源码

2019-07-23 18:15:26

技术大数据数据库

2021-10-25 09:41:04

架构运维技术

2018-11-28 09:38:34

微服务架构API

2013-04-19 15:12:17

架构师WEB架构师

2019-09-25 08:37:48

MySQL数据库人生第一份工作

2019-09-29 15:36:01

吞吐量MySQL数据库

2018-02-06 09:58:48

架构师MVCiOS

2020-11-25 09:56:48

架构运维技术

2022-06-15 10:04:51

存储选型MySQL

2022-05-24 09:30:00

消息吞吐车联网平台车联网

2012-08-13 09:55:22

架构师

2009-02-23 11:18:06

J2EE架构师Java

2020-06-08 15:01:55

数据中心网络架构带宽

2020-06-28 14:15:52

前端架构师互联网
点赞
收藏

51CTO技术栈公众号