cpu负载均衡与网络

news/2024/11/16 1:28:19/

当数据包到达时,网卡通过DMA复制数据包并发送中断,Linux内核收集这些数据包并完成中断处理。
随着网卡越来越快,基于中断会因大量传入数据包而导致 IRQ 瘫痪,消耗大部分 CPU 功率。

NAPI(中断+轮训)与现在常见的 1 Gbps 网卡配合使用。
但是,对于10Gbps、20Gbps甚至40Gbps的网卡,NAPI可能还不够Receive Side Scaling(RSS)多个RX / TX队列过程的数据包当接收到数据包时,会对数据包应用过滤器并将数据包分发到RX 队列。
echo 3 > /proc/irq/xxx/smp_affinity

RSS提供硬件队列

Receive Packet Steering 散列是所谓的第 4 层散列(l4 散列),它基于源 IP、源端口、目的 IP 和目的端口,由网卡或__skb_set_sw_hash() 计算。

设置rps在cpu0/1上均衡
echo 3 > /sys/class/net /eth0/queues/rx-0/rps_cpus
从 eth0 中队列 0 接收的数据包进入 CPU 1~3。

驱动程序在 sk_buff 中包装一个数据包后,它将到达netif_rx_internal()或netif_receive_skb_internal(),然后到达 get_rps_cpu可以在 CPU 之间分担数据包处理的负载

Receive Flow Steering(RFS)基于流分发数据包
echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
当调度器将应用程序迁移到新 CPU 时,旧 CPU 队列中剩余的数据包变得未完成,应用程序可能会得到乱序的数据包。
为了解决这个问题,RFS 使用每个队列的rps_dev_flow_table来跟踪未完成的数据包。

ARFS加速接收流量转向SO_REUSEPORT支持多个进程或者线程绑定到同一端口

/proc/interrupt查看硬中断次数
/proc/softirq查看软中断次数

RPS由单一CPU核响应硬件中断,将大量网络接收包,通过多核间中断方式分发给其他空闲核


http://www.ppmy.cn/news/693011.html

相关文章

电脑版微信不显示头像

关掉代理即可,打开IE浏览器->设置->internet选项->连接->局域网设置->将使用自动配置脚本勾选去掉->重启微信。 如上述方法未生效,可将局域网设置中的代理服务器下勾选项也去掉,重启微信即可。

微信 - 电脑(PC)版微信关闭自动下载文件

在电脑上打开【微信】【登陆】在微信【界面左侧】点击【菜单】在菜单里选择【设置】 设置列表里有个【文件管理】在文件管理的选项里,取消【自动下载】的勾选就行

微信ndows mac下载,Mac版微信又更新,Windows电脑:就这?

作为雷科技编辑部为数不多的用MacBook办公的小编,日常用电脑版微信时,总能感觉到一种“劣化”的体验,因为Mac微信的更新,总比Windows版慢了一拍。 比如Windows版微信去年8月就公测的小程序、图片引用等功能,Mac一直都没…

【Python】解决最新电脑版微信[22-06]聊天文件统一按用户归类到MsgAttach文件夹的问题

【Python】解决最新电脑版微信[22-06]聊天文件统一按用户归类到MsgAttach文件夹的问题 背景前提代码版本1版本2 背景 最近,微信又更新了,但这一版本的聊天文件安排方式变化有点大, 之前是按月份分类统一放到File文件夹下 “WeChat Files\wxi…

微信最新版下载 8.0.6

微信最新版 8.0.6 微信最新版及历史版本下载微信最新版下载信息(微信8.0.6): 微信最新版及历史版本下载 https://weixin.qq.com/cgi-bin/readtemplate?langzh_CN&tweixin_faq_list&headtrue 微信最新版下载信息(微信8.…

微信每日早安推送 Windows版

应诸多网友要求,这次上一个windows版的。 使用方法就是双击打开,立即就会推送一次。需要定时执行,可以使用windows的 任务计划程序 实现。帮大家百度好了 windows如何定时运行程序https://jingyan.baidu.com/article/7c6fb428334a49c1642c90e…

如何检查PC机微信的版本

1、选择“设置” 2、当前微信版本 3、检查是否有新版本 4、已经是最新版本了

微信网页版(在电脑上聊微信)

背景:有时候,在微信上要和人长时间聊天,但是手机打字很累,于是在电脑上装了一个微信客户端,但是体验度极差,于是就卸掉掉了。   解决:后来,发现了微信网页版,就是一个…