交换机缓冲区大小与其对延迟的影响之间有什么关系?我知道 bufferbloat 问题,并且知道在 BW 较慢(即小于 1Gbps)的网络中缓冲区太大会降低性能,但多大才太大?我还读到,在由 10Gbps 和更大链路组成的网络中,通常会因缓冲不足而受害。假设这是真的,为什么会这样?
我理解这个问题对于给定的工作量可能非常主观,但任何可以提供基础的一般指导方针或经验法则将不胜感激。
交换机缓冲区大小与其对延迟的影响之间有什么关系?我知道 bufferbloat 问题,并且知道在 BW 较慢(即小于 1Gbps)的网络中缓冲区太大会降低性能,但多大才太大?我还读到,在由 10Gbps 和更大链路组成的网络中,通常会因缓冲不足而受害。假设这是真的,为什么会这样?
我理解这个问题对于给定的工作量可能非常主观,但任何可以提供基础的一般指导方针或经验法则将不胜感激。
首先,仅当路径中存在拥塞(输入接口上传入的数据包过多,或交换引擎(ASIC/NPU/软件/任何)的数据包过多,或过多输出接口中的数据包)。在“轻负载”交换机上,缓冲区大小和延迟之间没有关系。存在由交换引擎的性能决定的恒定延迟。
在遇到拥塞的设备中,数据包位于缓冲区中等待轮到它们进行处理。如果等候室已满,则无法容纳新来者,即数据包被丢弃。
候车室越大,可以容纳的数据包数量就越多,但其中一些数据包的处理时间很可能会延迟。出于这个原因,您可以粗略地说缓冲区越大,延迟越多。
但是您会认为丢弃的数据包遭受了“无限延迟”吗?:-)
大多数情况下,现代交换机不会增加延迟;它们是线速的,因为大部分是在硬件中完成的。缓冲流量会减慢它的速度。
交换机往往有非常非常小的缓冲区。理由是,尽早减少流量比减慢流量要好。网络希望尽快丢弃任何将被丢弃的流量(如果交换机必须缓冲流量,它很可能会被后续网络设备丢弃),以便为检测和重传提供先机。