http://laoar.github.io/blog/2017/05/07/rps/ TL;DR RPS 即receive side steering,利用网卡的多队列特性,将每个核分别跟网卡的一个首发队列绑定,以达到网卡硬中断和软中断均衡的负载在各个CPU上. 他要求网卡必须要支持多队列特性. RPS receive packet steering 他把收到的packet依据一定的hash规则给hash到不同的CPU上去,以达到各个CPU负载均衡的目的. 他只是把软中断做负载均衡,不去改变硬…
RSS适合于多队列网卡,把不同的流分散的不同的网卡多列中,至于网卡队列由哪个cpu处理还需要绑定网卡队列中断与cpu RPS:适合于单队列网卡或者虚拟网卡,把该网卡上的数据流让多个cpu处理 RFS:当流量需要传输到用户态处理时,用处理软中断的cpu去处理用户态的逻辑,由于其实现的基础是RPS,因此只能在单队列网卡或者是虚拟网卡中使用,貌似在最新的内核版本中多队列网卡好像也可以使用了 XPS:根据当前处理软中断的cpu选择网卡发包队列,适合于多队列网卡 其中RFS主要是为了避免cpu由内核态进入…
网卡优化 RSS receive side scaling,网卡多队列,需要硬件支持.网卡接收到网络数据包后,要发送一个硬件中断,通知CPU取数据包.默认配置,都是由CPU0去做. RPS receive packet steering,向某个CPU发送一个软中断,来接收数据包,并递交给应用程序. RFS receive flow streering,维护两种hash表,实现将软中断分散到多颗CPU上去处理. 1.选择支持msi-x中断方式的网卡类型 #lspci –v 2.网卡需要支持多队列…
Introduction============ This document describes a set of complementary techniques in the Linuxnetworking stack to increase parallelism and improve performance formulti-processor systems. The following technologies are described: RSS: Receive Side Sc…
http://www.cnhalo.net/2016/09/13/linux-gro/ GRO(Generic receive offload): 在napi poll里把小包封装成大包再递交给协议栈 LRO: GRO的硬件实现(通过网卡的RSC功能) http://lwn.net/Articles/358910/ Why not irqbalance? 我们知道通过设置/proc/irq//smp_affinity, 可以设置中断的亲和性. 在用户态也有irqbalance来根据系统各cpu的…
本文快速解析一下RPS/RFS的基本原理. RPS-Receive Packet Steering 下面这个就是RPS的原理:  其实就是一个软件对CPU负载重分发的机制.其使能的作用点在CPU开始处理软中断的开始,即下面的地方: netif_rx_internal netif_receive_skb_internal RFS-Receive Flow Steering RFS在RPS的基础上,充分考虑到同一个五元组flow进程上下文和软中断上下文之间处理CPU的一致性,为此在socket层面也…
网卡多队列技术与RSS功能介绍 2017年02月08日 15:44:37 Murphy_0806 阅读数 10665 标签: rss网卡dpdk 更多 个人分类: DPDK https://blog.csdn.net/baidu_24553027/article/details/54927724 多队列 深队列的技术 AHCI不如NVME的最大的地方 其实网卡里面也有 多队列 已经 DMA网卡.   多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问…
修改网卡MAC地址后出现问题:device eth0 does not seem to be present, delaying initialization   1.修改网卡对应的文件,将配置文件中保存以前的MAC地址删掉   2.删除/etc/udev/rules.d/70-persistent-net.rules,然后重启   因为这个文件绑定了网卡和mac地址,所以换了网卡以后MAC地址变了,所以不能正常启动,也可以直接编辑这个配置文件把里面的网卡和mac地址修改为对应的,不过这样多麻烦…
背景 最近在做将基于dpdk-16.11.1开发的程序,转移到基于dpdk-18.11版本下开发.遇到了网卡RSS配置的问题,在这里纪录一下. 问题 dpdk-16.11.1 在dpdk-16.11.1上的程序如下: ] = { 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6…
重装了系统,新建了一个ubuntu虚拟机,加载原来的镜像,结果启动后网络变得不正常了,提示信息 Waiting for network configuration...Waiting up to 60 more seconds for network configuration... 系统登入以后,执行ifconfig发现只有一个lo,少了eth0 网上找了找这方面的资料,找到了解决办法,办法很简单. tonnytong@ubuntu-server:~$ sudo rm /etc/udev/ru…