BS架构业务的网络流量有着非常显著的特征:不对称性。来自于请求节点的一个很小的计算请求被计算集群并行处理后,会产生巨大的计算结果的响应流量,并且在瞬间全部涌向请求节点。在云计算的环境中,因为业务密度非常高,并且这些业务流量最终被承载在同一张底层支撑网络之上,这样的特征具体表现为:
非常形象地,这种流量被称为突发微浪涌流量。在云中,当大量的业务同时被高密度地部署提供服务时,这样的突发微浪涌流量就成为底层支撑网络需要应对的一种常态。
网络设备所采用的交换芯片一般都在其内部集成了报文缓存,用来暂时存储当拥塞发生时来不及处理的数据报文,避免报文丢失给上层业务带来的损伤。交换芯片的报文缓存机制就是云的底层支撑网络应对突发微浪涌流量的最重要手段之一。
在目前的交换芯片市场上,不同的厂商、不同的芯片一般采用两种不同的片内报文缓存机制:统一共享报文缓存架构和分片报文缓存架构。顾名思义:
例如,在一个拥有32个物理接口、24MB报文缓存的交换系统中:
显而易见,采用统一共享报文缓存架构的交换芯片具备了更强的突发微浪涌流量的吸收能力。延续上一节的例子,在分片报文缓存架构中,当突发微浪涌流量从位于不同接口组中的两个物理接口涌入交换芯片时,那么系统整体最多能够吸收的突发微浪涌流量是12MB,而另外12MB(两片)的报文缓存能力则被闲置着。反观统一共享报文缓存架构,因为所有的报文缓存能力在所有物理接口之间统一共享,无论突发微浪涌流量从哪个/哪些接口涌入,系统整体在任何时刻所具备的吸收能力都是24MB。
有实验数据表明,使用专业测试仪器模拟产生大量随机分布的突发微浪涌流量,再将这些流量注入到交换系统中,采用统一共享报文缓存架构的交换系统的吸收能力是采用分片报文缓存架构的6-12倍。
当交换芯片中的报文缓存被分片设计后,带来的一个最直接的后果就是流量分布的均衡性对交换机整体丢包率的潜在影响。在前述的例子中,如果去往同一目的地的突发微浪涌流量来自位于不同接口组中的多个接口,那么这些流量在被转发出交换机时将会获得不同的转发时间片资源;如下图所示,在极端的情况下,假如接收流量的6个接口中的接口1位于接口组A,接口2-6位于接口组B,那么后果则是接口1的报文获得的转发时间片资源是接口2-6获得的5倍。这种情况换一个角度来说,即交换芯片对流量的分布在转发时间片资源的维度来看是极度不均衡的。显而易见,在云中流量密集、无规律分布的场景中,这种不均衡会给系统的整体丢包率带来不可预测的影响。
简单来说,流量分布的均衡性问题出现的根本原因在于芯片在转发不同报文缓存、报文队列中的报文时采用的等时间片轮询算法,这一算法在当前的交换芯片设计中是被普遍采用的。而在采用统一共享报文缓存架构设计的芯片中,这种因为算法所导致的不均衡性已经在很大程度上被架构自身所化解,所以无论从哪个接口进入的报文都能够在转发过程中被尽可能均衡地分布,从而在最大程度上降低系统整体的丢包率。
Asterfusion的全线云交换机产品都基于统一共享报文缓存的可编程交换芯片设计、开发,能够完全适应云计算环境对底层支撑网络在性能、质量、可靠性等方面的严苛要求,为云计算环境打造超大容量、超高性能、开放智能的Asterfusion云网络。