目录

  • ​​定义​​
  • ​​举例​​
  • ​​影响​​
  • ​​测量方法​​
  • ​​基于sketch的网络测量方法​​
  • ​​解决方法​​
  • ​​网络转发芯片进行转发​​
  • ​​intel 带有dlb功能的cpu​​
  • ​​DLB 介绍​​
  • ​​解决大象流的思路​​
  • ​​具体实现​​
  • ​​DLB的效果​​
  • ​​参考​​

定义

通常使用五元组来标识一条流。
⼤象流是通过⽹络链路进⾏⼤量的,持续的传递数据的过程。⽼⿏流是通过⽹络链路进⾏少量的,短时间的数据传递过程。
即大速率(占用大带宽),长时的流就是elephant flow ,小速率,短时的就是mouse flow。

举例

发邮件,看⽹⻚,聊微信,这些都属于⽼⿏流。
⽽虚机的迁移,数据的迁移,视频,存储,MapReduce等等,属于⼤象流。也可以按照2/8定律来理解这两类数据流,即20%的⼤象流占⽤了80%的⽹络带宽,现实中可能没有20%的⼤象流,带宽可能也没占到80%,不过整体趋势是这样的。

影响

大象流的危害以及处理_LB

目前网卡经常基于流进行hash的RSS,会将同一个流分配到同一个接收队列中。
对于DPVS这种网卡队列和CPU绑定的网关产品而言,同一个流会分给同一个线程来处理。如果某一个流是大象流,会将DPVS的某个线程的CPU打满,影响同样给这个线程的老鼠流的处理,造成老鼠流的imiss丢包等。
总结:大象流可能将某CPU打满,影响同样给该CPU的老鼠流。

测量方法

基于sketch的网络测量方法

参考:​​基于sketch的网络测量方法​​

解决方法

网络转发芯片进行转发

比如:基于barefoot 可编程交换芯片编程的LB,通过转发芯片进行转发。每个出口带宽达到百G,
这样即使是大象流也应该可以覆盖其带宽,不影响老鼠流的转发。

intel 带有dlb功能的cpu

DLB 介绍

Intel® Dynamic Load Balancer (Intel® DLB) is a hardware managed system of queues and arbiters connecting producers and consumers. It is a PCI device envisaged to live in the server CPU uncore and can interact with software running on cores, and potentially with other devices.

Intel has added a new CPU dynamic load balancer (DLB) to the recently released SOC processor, which can effectively improve the utilization rate of each core when using multi-core CPU for packet forwarding. At the same time, it provides a new solution for the network elephant flow (single stream and large traffic) that the network card cannot handle flexibly. This topic will start with the working principle of DLB and introduce the corresponding software development methods.

大象流的危害以及处理_LB_02

解决大象流的思路

大象流的危害以及处理_链路_03

硬件队列(类似于软件中的rte_ring)实现包的分发,同时也可以保证包的有序。

大象流的危害以及处理_sed_04


这个其中涉及到大象流的识别,以及将大象流引流到指定core。大象流的识别流程如下:

大象流的危害以及处理_解决方法_05

具体实现

  • 老鼠流的处理
  • 大象流的危害以及处理_LB_06

  • 大象流的处理
  • 大象流的危害以及处理_sed_07

DLB的效果

大象流的危害以及处理_解决方法_08

参考

Handling Elephant Flow on a DPDK-Based Load Balancer:
https://static.sched.com/hosted_files/dpdksummitapac2021/35/Handling%20Elephant%20Flow%20on%20a%20DPDK-Based%20Load%20Balancer.pdf