统一共享报文缓存

从容应对云中的突发微浪涌流量

BS业务在云计算环境中的流量特征

业务的交互模型从CS(Client-Server,客户端-服务器)架构演进到BS(Browser-Server,浏览器-服务器)架构是IT发展过程中的一个里程碑式的节点。BS架构将交互模型中客户端一侧的开发工作量大幅度降低,全部基于标准、成熟的HTTP(S)和浏览器来构建,无需再重复地、自底向上地构建定制的客户端软件;在BS架构的基础上,最近几年被广泛采用的“微服务”框架也大幅提升了服务器端业务系统的开发效率和部署速度。所以,BS架构的普及从本质上来说意味着整体IT架构效率的大幅度提升。

BS架构的快捷性与高效率、移动互联网时代的兴起、云计算的大行其道,最终带给整个IT世界带来的结果是:业务在云中被大量、高密度地部署,随时随地、无时无刻地向用户提供服务。

BS架构业务的网络流量有着非常显著的特征:不对称性。来自于请求节点的一个很小的计算请求被计算集群并行处理后,会产生巨大的计算结果的响应流量,并且在瞬间全部涌向请求节点。在云计算的环境中,因为业务密度非常高,并且这些业务流量最终被承载在同一张底层支撑网络之上,这样的特征具体表现为:

  • 无固定规律突发。因为访问业务的用户的行为无法预测、业务内容在不同计算集群上的分布式部署、云中计算资源的动态迁移等因素,导致这样的响应流量无论在时间上、还是方向上都是突发式的,并无固定的规律可循。
  • 持续时间非常短。业务系统分布式的规模越来越大、算法的效率不断提升,以确保用户“在越来越短的时间内获得所需的内容”,这样的目标对于底层支撑网络而言,则意味着响应流量频繁发生并且每次的持续时间非常短(以微秒计)。
  • 突发流量非常大。业务复杂度的不断提高,单一请求节点面对规模越来越大的计算集群,都会导致这种瞬间的突发流量在微秒级的时间间隔内非常大。

非常形象地,这种流量被称为突发微浪涌流量。在云中,当大量的业务同时被高密度地部署提供服务时,这样的突发微浪涌流量就成为底层支撑网络需要应对的一种常态。

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

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

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

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

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

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

突发微浪涌流量的吸收能力

显而易见,采用统一共享报文缓存架构的交换芯片具备了更强的突发微浪涌流量的吸收能力。延续上一节的例子,在分片报文缓存架构中,当突发微浪涌流量从位于不同接口组中的两个物理接口涌入交换芯片时,那么系统整体最多能够吸收的突发微浪涌流量是12MB,而另外12MB(两片)的报文缓存能力则被闲置着。反观统一共享报文缓存架构,因为所有的报文缓存能力在所有物理接口之间统一共享,无论突发微浪涌流量从哪个/哪些接口涌入,系统整体在任何时刻所具备的吸收能力都是24MB。

有实验数据表明,使用专业测试仪器模拟产生大量随机分布的突发微浪涌流量,再将这些流量注入到交换系统中,采用统一共享报文缓存架构的交换系统的吸收能力是采用分片报文缓存架构的6-12倍。

流量分布的均衡性对整体丢包率的影响

当交换芯片中的报文缓存被分片设计后,带来的一个最直接的后果就是流量分布的均衡性对交换机整体丢包率的潜在影响。在前述的例子中,如果去往同一目的地的突发微浪涌流量来自位于不同接口组中的多个接口,那么这些流量在被转发出交换机时将会获得不同的转发时间片资源;如下图所示,在极端的情况下,假如接收流量的6个接口中的接口1位于接口组A,接口2-6位于接口组B,那么后果则是接口1的报文获得的转发时间片资源是接口2-6获得的5倍。这种情况换一个角度来说,即交换芯片对流量的分布在转发时间片资源的维度来看是极度不均衡的。显而易见,在云中流量密集、无规律分布的场景中,这种不均衡会给系统的整体丢包率带来不可预测的影响。

简单来说,流量分布的均衡性问题出现的根本原因在于芯片在转发不同报文缓存、报文队列中的报文时采用的等时间片轮询算法,这一算法在当前的交换芯片设计中是被普遍采用的。而在采用统一共享报文缓存架构设计的芯片中,这种因为算法所导致的不均衡性已经在很大程度上被架构自身所化解,所以无论从哪个接口进入的报文都能够在转发过程中被尽可能均衡地分布,从而在最大程度上降低系统整体的丢包率。

基于统一共享报文缓存机制设计的Asterfusion云网络

Asterfusion的全线云交换机产品都基于统一共享报文缓存的可编程交换芯片设计、开发,能够完全适应云计算环境对底层支撑网络在性能、质量、可靠性等方面的严苛要求,为云计算环境打造超大容量、超高性能、开放智能的Asterfusion云网络。