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

2023-11-02 16:18
文章标签 吞吐量 延迟 精彩 比喻

本文主要是介绍关于吞吐量和延迟的精彩比喻,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.javaranger.com/archives/1264

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

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

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

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

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

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


这篇关于关于吞吐量和延迟的精彩比喻的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/331798

相关文章

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

MySQL主从同步延迟原理及解决方案

概述 MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力; ②在从主服务器进行备份,避免备份期间影响主服务器服务; ③当主服务器出现问题时,可以切换到从服务器。 相信大家对于这些好处已经非常了解了,在项目的部署中也采用这种方案。但是MySQL的主从同步一直有从库延迟的问题,那么为什么会有这种问题。这种问题如何解决呢? MyS

Flink全链路延迟的测量方式和实现原理

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 本文已经加入「大数据成神之路PDF版」中提供下载。你可以关注公众号,后台回复:「PDF」 即可获取。 一、背景 Flink Job端到端延迟是一个重要的指标,用来衡量Flink任务的整体性能和响应延迟(大部分流式应用,要求低延迟特性)。 通过流处理引擎竞品对比,我们发现大部分流计算引擎产品,都在告警监控页面,集成了全链路时延指标

dispatch_after 的延迟执行分析

dispcth_after 是将block 中的任务延迟添加到它将要执行的队列中去,而并不一定添加到队列中就立即会去执行任务。 图中表示是在5秒中后将任务添加到主队列中,如果主队列中还有另外的任务假设A、B 要执行,那么这个任务会在任务A、B 执行完后才会开始执行。 验证的代码如下: dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int

SpringBoot教程(十五) | SpringBoot集成RabbitMq(死信队列、延迟队列)

SpringBoot教程(十五) | SpringBoot集成RabbitMq(死信队列、延迟队列) (一)死信队列使用场景具体用法前提示例: (二)延迟队列使用场景方法一:通过死亡队列实现方法二:通过延迟消息插件(rabbitmq_delayed_message_exchange)实现 (一)死信队列 死信队列是一个重要的概念,用于处理那些因各种原因无法被正常消费的消息。 它

《挑战极限,畅享精彩 ——韩星地带:逃脱任务 3 震撼来袭》

在综艺的浩瀚星海中,总有那么一些节目如璀璨星辰般闪耀,而《韩星地带:逃脱任务 3》无疑就是其中的佼佼者。 2024 年,这个令人热血沸腾的真人秀节目再度回归,为观众带来一场惊心动魄的冒险之旅。节目由韩国 “国民 MC” 刘在石领衔主持,他那无与伦比的综艺感和控场能力,如同定海神针般,稳稳地把控着节目的节奏。权俞利,少女时代的魅力成员,勇敢与智慧并存,在节目中展现出令人惊叹的一面。新加入的金东炫

学习记录-Qt按键单击后延迟一段时间触发下一个函数执行

<span style="font-family: Arial, Helvetica, sans-serif;">QTimer::singleShot(1000, this, SLOT(on_pushButton_pcba_readfilename_clicked()));</span>项目中,需要按键单击后发送一条指令,等待一段时间后在发另一条指令,看文档发现使用如上方式可以实现

JavaScript 实现网页菜单延迟加载效果》

目录 一、整体代码结构 二、代码注解 1. HTML 结构部分 2. CSS 样式部分 3. JavaScript 部分 一、整体代码结构 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial

转载 SPI的比喻理解

SPI 传输是一个虚拟的移位寄存器方式。 你这么理解就可以: 主机和从机之间有一条 16 格的传送带。主机一格一格拨动它转动(相当于发送时钟)。 如果是主机发送,它就把一个个的东西放在传送带上,转动 8 次,就传到从机一侧了。这时,从机可以从传送带上将东西取下。如果从机没有取东西,这些东西再转 8 次又回到主机一侧。 如果是主机接收,从机就要把 8 个东西一次放上传送带。当主机转动 8 次,东西就

尚品汇-延迟插件实现订单超时取消(四十五)

目录: (1)延迟插件封装 (2)基于延迟插件测试         如何保证消息幂等性? (3)改造订单service-order模块-实现订单超时取消 (1)延迟插件封装          把消息带过去:  在消息的重试发送消息的方法里封装:retrySendMsg (2)基于延迟插件测试 service-order模块  rabbit-util模块配置