【发布时间】:2023-03-24 23:58:01
【问题描述】:
我正在努力在延迟、带宽和吞吐量之间划清界限。
有人可以用简单的术语和简单的例子来解释我吗?
【问题讨论】:
标签: performance bandwidth latency throughput
我正在努力在延迟、带宽和吞吐量之间划清界限。
有人可以用简单的术语和简单的例子来解释我吗?
【问题讨论】:
标签: performance bandwidth latency throughput
【讨论】:
当使用 TCP 发送 SYN 数据包时,它会等待 SYN+ACK 响应,发送和接收之间的时间就是延迟。它是一个变量的函数,即时间。
如果我们在 100Mbit 连接上执行此操作,这就是我们拥有的理论带宽,即每秒可以发送多少位。
如果我将一个 1000Mbit 的文件压缩到 100Mbit 并通过 100Mbit 线路发送,那么我的有效吞吐量可以被认为是每秒 1Gbit。这个网络的理论吞吐量和理论带宽是一样的,但是为什么我说吞吐量是每秒 1Gbit。
在谈到吞吐量时,我听到的最多的是与应用程序相关的内容,即 1Gbit 吞吐量示例,我假设在堆栈中的某个层进行了压缩,我们在那里测量了吞吐量。实际网络的吞吐量没有变化,但应用程序的吞吐量却发生了变化。有时吞吐量是在谈论actual throughput,即100Mbit 连接是理论带宽,也是理论吞吐量(以bps 为单位),但极不可能是您实际得到的。
吞吐量也用于整个系统,即每天清洗的狗数量或每小时灌装的瓶子数量。您不经常以这种方式使用带宽。
请注意,特别是带宽还有其他常见含义,我假设网络是因为这是 stackoverflow,但如果是数学或业余无线电论坛,我可能完全在谈论其他东西。
https://en.wikipedia.org/wiki/Bandwidth
https://en.wikipedia.org/wiki/Latency
这是值得一读的吞吐量。
【讨论】:
这是我能理解的语言的一点点
当您购买水管时,您会查看两个完全独立的参数:管道的直径和长度。直径决定了管道的吞吐量,长度决定了延迟,即水滴穿过管道所需的时间。需要注意的关键点是长度和直径是独立的,因此,通信通道的延迟和吞吐量也是如此。
更正式地说,吞吐量定义为每秒进入或离开管道的水量,延迟是水滴从管道一端到另一端所需的平均时间。
让我们做一些数学运算:
为简单起见,假设我们的管道是 4 英寸 x 4 英寸的正方形,长度为 12 英寸。现在假设每个水滴是一个 0.1in x 0.1in x 0.1in 的立方体。因此,在管道的一个横截面中,我将能够容纳 1600 个水滴。现在假设水滴以 1 英寸/秒的速度移动。
吞吐量:每组液滴将在 0.1 秒内进入管道。因此,1 秒内将移动 10 组,即每秒将有 16000 个液滴进入管道。请注意,这与管道的长度无关。 延迟:以 1 英寸/秒的速度,液滴 A 从管道的一端到达另一端需要 12 秒,无论管道的直径如何。因此延迟为 12 秒。
【讨论】:
我想补充已经写好的答案,延迟和吞吐量的另一个区别,与流水线的概念有关。为此,我将举一个日常生活中的例子,关于衣服的准备:为了准备好它们,我们必须(i)洗涤它们,(ii)干燥它们(iii)熨烫它们。这些任务中的每一个都需要一定的时间,例如 A、B 和 C。每一批衣服都需要一共A+B+C的时间才能做好。这是整个过程的延迟。但是,由于 i、ii 和 iii 是独立的子流程,您可以开始洗涤第三批衣服,而第二批衣服正在烘干,第一批正在熨烫,等等(管道)。然后,第一批之后的每批衣服,将在 max(A,B,C) 时间后准备好。吞吐量将以每次衣服的批次来衡量,等于 1/[max(A,B,C)]。
话虽如此,这个答案试图强调当我们只知道系统的延迟时,我们不一定知道它的吞吐量。这些是真正不同的指标,而不仅仅是表达相同信息的另一种方式。
【讨论】:
延迟:事件经过的时间。
例如。从 A 点走到 B 点需要一分钟,延迟是一分钟。
吞吐量:单位时间内可以执行的事件数。
例如。带宽是吞吐量的衡量标准。
我们可以增加带宽以提高吞吐量,但不会改善延迟。
以 RPC 为例 — 分布式系统中的消息通信延迟有两个组成部分,第一个组成部分是硬件开销,第二个组成部分是软件开销。
硬件开销取决于网络与计算机的接口方式,这主要由网络控制器管理。
我写了一篇关于它的博客:) https://medium.com/@nbosco/latency-vs-throughput-d7a4459b5cdb
【讨论】: