流量微突发问题处理

 什么是微突发?

微突发(Microburst)是指端口在非常短的时间(毫秒级别)内收到非常多的突发数据,典型的微突发的持续时间通常在1~100毫秒之间,以至于瞬时突发速率达到平均速率的数十倍、数百倍,甚至超过端口带宽的现象。

网管或网络性能监测软件通常是基于比较长的时间(数秒到数分钟)计算网络实时带宽。在这种情况下,看到流量速率通常是一条比较平稳的曲线(如图1-1所示),没有任何的网络异常。但是,一秒钟对于一个高速收发数据包的接口来说是非常长的一个时间段。如果将数据更改为更细粒度(例如毫秒级)进行观察,实际流量中会看到更多突发,这些微突发非常纤细,流量速率很可能是带锯齿的(如图1-2所示)。如果锯齿突变很大,就称为微突发。

图1-1 宏观流量速率
图1-2 微观流量速率

微突发产生的原因

网络中产生微突发,主要有如下原因:

  1. 业务流量存在波动。很多的业务模型下,用户的请求和服务器的响应是离散出现的,导致业务流量是间歇性的,不稳定。同时对时延和带宽敏感的业务要求尽快发送数据,加剧业务的突发性。
    图1-3 业务流量存在波动
  2. 流量的入端口总带宽超过出端口的总带宽。例如:大带宽的端口向低带宽的出端口发送流量、相同速率的多个入端口向一个出端口发送流量。
    图1-4 大带宽的端口向低带宽的出端口发送流量
    图1-5 相同速率的多个入端口向一个出端口发送流量
  3. 传统的TCP发包原则:通过慢启动和拥塞避免机制,尽快将数据包发送出去。慢启动使得发送速率不会快速上升。当吞吐量达到上限后,TCP滑动窗口减半,速率迅速下降,导致会话流量呈锯齿状,具有突发性。TCP总是期望把发送窗口中的数据尽快发送完,所以会在等待TCP的报文到达确认(ACK)到来后,通过滑动窗口机制再继续发送数据,如此循环,使得发包速率不平缓,突发性强。
    图1-6 拥塞避免机制下,传统的TCP会话流量曲线呈锯齿状

微突发的影响及产生过程

当微突发流量的瞬时速率超过交换机的转发能力时,交换机会将突发的数据进行缓存以便稍后发送。如果交换机没有足够的缓存,那么超出的数据只能丢弃,这就产生了拥塞丢包。

如下是一个典型的毫秒级微突发场景。假设Port1、Port2都以10Gbps的线速速率分别向Port3发送5MB的数据,则总发送速率为20Gbps。而Port3的速率为10Gbps,仅为总发送速率的一半,因此只能将一半的数据(5MB)发送出去,另一半数据(5MB)则需要先缓存起来,待Port3有空闲能力时再发送。这时,由于交换机只有1MB的缓存,因此会有4MB的数据由于缓存不足而丢弃。在不考虑帧间隙、前导码、帧校验和、报文头等开销数据的情况下,这个突发持续的时间为5MB/10Gbps = 4ms。

在实际的网络中,入端口数量比出端口数量更多,因此对缓存的消耗会更严重,微突发时产生的拥塞丢包也就会更多。

如何评估交换机的抗突发能力

RFC4445中定义了衡量数据流的传输质量的关键指标——Delay Factor(简称DF,延迟因子)。DF,表明业务流量的延迟和抖动状况,业务流量抖动越大,DF值越大。当网络产生微突发时,DF可以被测量出来,单位是毫秒。

对于交换机,可以将DF换算为对缓存的需求。具体换算公式为:

式中:

T—交换机缓存要求

DF—业务流量的延迟和抖动状况

W—出端口带宽

U—出端口带宽利用率

A—突发服务器接口物理带宽之和

B—出接口速率

C—未突发服务器速率和

一般交换机固有的缓存越大,通过如上公式计算出的缓存要求越低,抗突发能力就越强。

 

为什么不能通过网管或者设备观察端口来监控微突发?

客户习惯通过网管或者设备观察端口来监控监控端口流量或者出接口的报文最大速率。但是,这种方法并不能用来监控微突发。

通过网管监控端口流量

网管7*24小时不停地监控端口流量,通过设备的流量曲线判断网络中流量的走势,当网络产生微突发现象(即丢包)时,网管上展现的流量曲线都相对平稳。因为网管主要通过SNMP get方式来获取设备数据,存在如下不足:
  • 管理规模有限:通过拉模式来获取设备的监控数据,不能监控大量网络节点,限制了网管的监控规模。

  • 监控周期仅能到秒级:网管监控流量的周期通常是30s,最小一般可以设置为5s,部分第三方网管能设置成1s,一般都认为是秒级的精度。而且,网管监控的流量图的精度主要依赖于被管理设备的上报的数据精度,即使网管能计算出毫秒级别精度的速率,但是一般设备上报的数据只有秒级,流量图的精度还是秒级。

那设备为什么不实现毫秒级统计呢?主要因为:交换机端口众多,当设备统计端口报文时,CPU会遍历所有端口,获取端口报文统计性能比较低,无法在微突发的时间段遍历获取所有端口流量信息;而且毫秒级轮询所有端口对CPU性能的消耗非常大,可能会影响到交换机的正常业务,因此设备自身无法捕获微突发信息。

通过设备观察端口的出接口报文的最大速率

当网络产生微突发现象(即丢包)时,设备观察端口的出接口报文的最大速率,远远达不到端口的速率,端口利用率甚至都不到10%。

因为设备转发芯片只记录收到的总报文数,所以要想计算交换机上任何报文速率,都是只能通过总报文数量除以统计时间,所以最终统计精度还是取决于统计周期的长短。对于华为CloudEngine交换机而言,无论峰值速率和瞬时速率,默认都是按照300s的周期计算的平均值,其中峰值速率统计的周期是可配置的,最小为10s,也就是说精度只能达到10s。

-----------------------------

单接口的缓存大小和使用光模块或者电模块没有关系;

同一个设备的10G接口和100G接口的缓冲区大小有可能相同、有可能不同,看设备型号;(CE6820-48S6CQ-10GE接口100GE接口都是11.8MB的缓存)

转发自:

https://support.huawei.com/enterprise/zh/doc/EDOC1100087023/7469aa9a#fig342618301265

posted @ 2022-11-23 19:07  .dier  阅读(598)  评论(0编辑  收藏  举报