Tackling Parallelization Challenges of Kernel Network Stackfor Container Overlay Networks

关键词:容器 覆盖网络 性能瓶颈

1. NetWork Packet Processing in Linux

NICs - kernel space - user space

  • 到达NICs: 包被copy到 kernel ring buffer 并触发一个硬件中断 (Interrupt ReQuest).

  • Kernel响应中断,并开始接收流程:接收过程被分为两步: top halfthe bottom half

    • top half在interrupt的context中运行:inserts the packet into the per-CPU packet queue

    • Bottom half以软件中断的形式运行:随后被kernel调度并且是在网络协议栈中处理的main routine

  • 经过多层的layer后,copied to userspace

2. Optimization for packet processing

#### Method1:packet process overhead optimization

*   Per-packet or Per-byte cost:*interrupt coalescing*(包合并来减少在内核网络栈处理的包数量) and *polling-based approaches*来减少中断次数,*user-space network stacks*等

#### Method 2:Parallelize processing

*   高速网络设备可以轻易使一个cpu内核饱和:NIC可以提供muti-queues,分别对不同的内核提供IRQ(也可以直接向不同的内核分发,不需要网卡支持RPS)

3. Some Evaluation

截屏2020-10-18 下午5.21.56.png

可以看到,开销增加最多的地方在于软中断(即一些对kernel的IO请求)
而CPU并行化的方案最小粒度是基于flow的,无法到packet的粒度
对于小流,上述问题会导致瓶颈更严重

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者: 阮一峰日期: 2016年12月 2日 学习 Linux 时,经常可以看到两个词:User space(用户...
    3e1094b2ef7b阅读 939评论 0 0
  • 前言 之前记录过处理因为LVS网卡流量负载过高导致软中断发生丢包的问题,RPS和RFS网卡多队列性能调优实践,对一...
    王奥OX阅读 7,824评论 0 6
  • 一、中断基础概念 所谓中断,指CPU在执行程序的过程中,出现了某些突发事件即待处理,CPU必须暂停当前的程...
    Nothing_655f阅读 2,232评论 0 1
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,590评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 1,895评论 4 1