关于吞吐量和延迟的精彩比喻

关于吞吐量(throughput)和延迟(latency),如果你要搞性能优化,这两个概念是必须要知道的,它们看似简单实则不是。很多人都曾经认为高吞吐量就意味着低延迟,高延迟就意味着吞吐量变小。下面的比喻可以解释这种观点是错误的。

我们可以把网络发送数据包比喻成去街边的 ATM 取钱。每一个人从开始使用 ATM 到取钱结束整个过程都需要一分钟,所以这里的延迟是60秒,那吞吐量呢?当然是 1/60 人/秒。现在银行升级了他们的 ATM 机操作系统,每个人只要30秒就可以完成取款了!延迟是 30秒,吞吐量是 1/30 人/秒。很好理解,可是前面的问题依然存在对不对?别慌,看下面。

因为这附近来取钱的人比较多,现在银行决定在这里增加一台 ATM 机,一共有两台 ATM 机了。现在,一分钟可以让4个人完成取钱了,虽然你去排队取钱时在 ATM 机前还是要用 30 秒!也就是说,延迟没有变,但吞吐量增大了!可见,吞吐量可以不用通过减小延迟来提高。

好了,现在银行为了改进服务又做出了一个新的决定:每个来取钱的客户在取完钱之后必须在旁边填写一个调查问卷,用时也是30秒。那么,现在你去取钱的话从开始使用 ATM 到完成调查问卷离开的时间又是 60 秒了!换句话说,延迟是60秒。而吞吐量根本没变!一分钟之内还是可以进来4个人!可见,延迟增加了,而吞吐量没有变。

从这个比喻中我们可以看出,延迟测量的是每个客户(每个应用程序)感受到的时间长短,而吞吐量测量的是整个银行(整个系统)的处理效率,是两个完全不同的概念。

正如银行为了让客户满意不光要提高自身的办事效率外,还要尽量缩短客户在银行办事所花的时间一样,系统不光要尽量让吞吐量大,而且还要让每个请求的延迟尽量小。这是两个不同的目标。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
系统吞吐量延迟是两个常用的性能指标,它们在不同场景下有不同的应用和衡量方式。下面以几个例子来说明系统吞吐量延迟的概念: 1. 网络路由器:在网络路由器的场景中,系统吞吐量指的是路由器每秒钟能够处理的数据包数量。例如,一台路由器的吞吐量为10 Gbps,表示它每秒可以处理10亿比特的数据包。 而延迟则指的是从数据包进入路由器到离开路由器所经过的时间。通常以毫秒(ms)为单位衡量。例如,一个路由器的延迟为5 ms,表示数据包在经过该路由器时会增加5毫秒的延迟。 2. 数据库系统:在数据库系统中,系统吞吐量表示数据库每秒钟能够执行的事务数量。例如,一个数据库系统的吞吐量为1000 tps(transactions per second),表示它每秒可以处理1000个事务。 而延迟则指的是执行一个事务所需的时间。通常以毫秒(ms)为单位衡量。例如,一个数据库系统的延迟为10 ms,表示执行一个事务需要花费10毫秒的时间。 3. 分布式计算:在分布式计算中,系统吞吐量指的是集群每秒钟能够处理的作业数量或数据量。例如,一个分布式计算集群的吞吐量为1000作业/秒,表示它每秒可以处理1000个作业。 而延迟则指的是作业执行完成所需的时间。通常以秒为单位衡量。例如,一个作业的延迟为10秒,表示该作业执行完成需要花费10秒的时间。 综上所述,系统吞吐量延迟是两个常用的性能指标,吞吐量衡量系统单位时间内处理的数量或数据量,而延迟衡量系统完成一个任务所需的时间。在不同的领域和场景中,对吞吐量延迟的要求会有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值