统一共享报文缓存

          网络设备所采用的交换芯片一般都在其内部集成了报文缓存,用来暂时存储当拥塞发生时来不及处理的数据报文,避免报文丢失给上层业务带来的损伤。交换芯片的报文缓存机制就是云的底层支撑网络应对突发微浪涌流量的最重要手段之一。

交换芯片的报文缓存机制:统一共享和分片式

          在目前的交换芯片市场上,不同的厂商、不同的芯片一般采用两种不同的片内报文缓存机制:统一共享报文缓存架构和分片报文缓存架构。顾名思义:

  • 在统一共享报文缓存架构中,芯片内部集成了一片大的报文缓存,而所有收发业务报文的物理接口则统一共享这一片大的报文缓存;
  • 而在分片报文缓存架构中,若干片较小的报文缓存共同组成了芯片内部的报文缓存,相应地,所有的物理接口也被划分成了不同的组,同一组内的物理接口则共享对应的一小片报文缓存。
  • 技术实现

    例如,在一个拥有32个物理接口、24MB报文缓存的交换系统中:

    • 如果交换芯片采用统一共享报文缓存架构,则这32个物理接口是共享这24MB报文缓存的;
    • 如果交换芯片采用分片(4片)报文缓存架构,则意味着32个接口被分成了4组,每组中的8个接口共享6MB的报文缓存。
  • 优势特点

    • 突发微浪涌流量的吸收能力
                显而易见,采用统一共享报文缓存架构的交换芯片具备了更强的突发微浪涌流量的吸收能力。延续上一节的例子,在分片报文缓存架构中,当突发微浪涌流量从位于不同接口组中的两个物理接口涌入交换芯片时,那么系统整体最多能够吸收的突发微浪涌流量是12MB,而另外12MB(两片)的报文缓存能力则被闲置着。反观统一共享报文缓存架构,因为所有的报文缓存能力在所有物理接口之间统一共享,无论突发微浪涌流量从哪个/哪些接口涌入,系统整体在任何时刻所具备的吸收能力都是24MB。 有实验数据表明,使用专业测试仪器模拟产生大量随机分布的突发微浪涌流量,再将这些流量注入到交换系统中,采用统一共享报文缓存架构的交换系统的吸收能力是采用分片报文缓存架构的6-12倍。

    两种报文缓存架构对突发微浪涌流量的吸收能力对比

    • 流量分布的均衡性对整体丢包率的影响
                当交换芯片中的报文缓存被分片设计后,带来的一个最直接的后果就是流量分布的均衡性对交换机整体丢包率的潜在影响。在前述的例子中,如果去往同一目的地的突发微浪涌流量来自位于不同接口组中的多个接口,那么这些流量在被转发出交换机时将会获得不同的转发时间片资源;如下图所示,在极端的情况下,假如接收流量的6个接口中的接口1位于接口组A,接口2-6位于接口组B,那么后果则是接口1的报文获得的转发时间片资源是接口2-6获得的5倍。这种情况换一个角度来说,即交换芯片对流量的分布在转发时间片资源的维度来看是极度不均衡的。显而易见,在云中流量密集、无规律分布的场景中,这种不均衡会给系统的整体丢包率带来不可预测的影响。简单来说,流量分布的均衡性问题出现的根本原因在于芯片在转发不同报文缓存、报文队列中的报文时采用的等时间片轮询算法,这一算法在当前的交换芯片设计中是被普遍采用的。而在采用统一共享报文缓存架构设计的芯片中,这种因为算法所导致的不均衡性已经在很大程度上被架构自身所化解,所以无论从哪个接口进入的报文都能够在转发过程中被尽可能均衡地分布,从而在最大程度上降低系统整体的丢包率。

    两种报文缓存架构的流量均衡性分布对比