首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux网络包接收过程的监控与调优

    : 0 RX Jumbo: 0 TX: 512 这里看到我手头的网卡设置RingBuffer最大允许设置到4096,目前的实际设置是512。...# ethtool -G eth1 rx 4096 tx 4096 这样网卡会被分配更大一点的”中转站“,可以解决偶发的瞬时的丢包。不过这种方法有个小副作用,那就是排队的包过多会增加处理网络包的延时。...2)多队列网卡调优 现在的主流网卡基本上都是支持多队列的,我们可以通过将不同的队列分给不同的CPU核心来处理,从而加快Linux内核处理网络包的速度。这是最为有用的一个优化手段。...: 63 Current hardware settings: RX: 0 TX: 0 Other: 1 Combined: 8 上述结果表示当前网卡支持的最大队列数是...因此,前面硬中断分散到多核上处理的时候,软中断的优化其实也就跟着做了,也会被多核处理。不过软中断也还有自己的可优化选项。

    1.9K10

    Linux网络包接收过程的监控与调优

    : 0 RX Jumbo: 0 TX: 512 这里看到我手头的网卡设置RingBuffer最大允许设置到4096,目前的实际设置是512。...# ethtool -G eth1 rx 4096 tx 4096 这样网卡会被分配更大一点的”中转站“,可以解决偶发的瞬时的丢包。不过这种方法有个小副作用,那就是排队的包过多会增加处理网络包的延时。...2)多队列网卡调优 现在的主流网卡基本上都是支持多队列的,我们可以通过将不同的队列分给不同的CPU核心来处理,从而加快Linux内核处理网络包的速度。这是最为有用的一个优化手段。...: 63 Current hardware settings: RX: 0 TX: 0 Other: 1 Combined: 8 上述结果表示当前网卡支持的最大队列数是...因此,前面硬中断分散到多核上处理的时候,软中断的优化其实也就跟着做了,也会被多核处理。不过软中断也还有自己的可优化选项。

    3.2K42

    ethtool 原理介绍和解决网卡丢包排查思路

    了解接收数据包的流程 将网卡收到的数据包转移到主机内存(NIC 与驱动交互) 通知系统内核处理(驱动与 Linux 内核交互) 2. ifconfig 解释 3....这次想分享的话题是比较常见服务器网卡丢包现象排查思路,如果你是想了解点对点的丢包解决思路涉及面可能就比较广,不妨先参考之前的文章如何使用 MTR 诊断网络问题[2],对于 Linux 常用的网卡丢包分析工具自然是...Jumbo: 0 TX: 4096 Current hardware settings: RX: 256 RX Mini: 0 RX Jumbo: 0 TX: 256 ethtool -G eth0...: 0 tx_error_bytes: 0 tx_mac_errors: 0 tx_carrier_errors: 0 rx_crc_errors: 9244...: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors:

    2.2K30

    Linux收发包绑定CPU

    ✅ 方法 2:基于 XPS(Transmit Packet Steering)XPS 是 Linux 提供的一种优化机制,用于将不同 CPU 发起的 TX 操作 映射到特定的 TX 队列。...,然后tx方向则通过选定的cpu的tx队列发送,后续的包则通过tx对应的rx队列来收包,rx队列环形对应的irq cpu完成中断收包,xps绑定的中断cpu进行协议栈收包,收包处理,整个流程中,流处理能很快收敛到同一个...等基于流量的队列控制,那aRFS通过下发硬件流表的形式让网卡硬件将该流量送到与软中断相同cpu对应的硬件队列上去,从而实现完整的rx流cpu亲和性全自动绑定.需要注意的是aRFS不会更改收包硬中断的cpu.../RX)协议栈- (TX) taskset 应用发包的协议栈处理仍然由taskset的cpu处理- (RX) RPS可以通过队列判断触发软中断的cpu- (RX) aRFS则通过获取对应socket的cpu...- (RX / TX) rx_poll和tx_poll的irq affinity

    54620

    Linux性能调优之内核网络栈发包收包认知

    写在前面 陆续整理一些 Linux 网络调优的的技术博客 讲网络调优,离不开讲 ebpf,对于网络优化,我计划分四个方向整理: 1.内核网络栈的认知,以及一些常见的网络认知 2.网络相关的内核参数优化以及监控指标认知...4.启动网卡:配置队列与中断 驱动初始化完成后,内核会将网卡从 “down” 状态切换到 “up” 状态(即启动网卡),同时完成两项关键配置: 分配 RX/TX 队列:通常为每个 CPU 核心分配独立的接收队列...1,即 1 个 RX 队列和 1 个 TX 队列。...2048 # 当前接收缓冲区数量:2048个 TX: 2048 # 当前发送缓冲区数量:2048个 该网卡支持独立的接收(RX)和发送(TX)环形缓冲区;当前接收和发送缓冲区均配置为...这里的硬中断会触发 NET_RX_SOFTIRQ 软中断,即网卡的 “发送完成通知” 与 “接收数据” 触发的硬中断,最终都会调用 NET_RX_SOFTIRQ(而非 NET_TX_SOFTIRQ),导致

    21810

    Linux 网络子系统

    (NET_RX_SOFTIRQ, net_rx_action); 收发数据包的软中断处理函数被注册为net_rx_action和net_tx_action。...在这个初始化过程中,把自己的DMA准备好,把NAPI的poll函数地址告诉内核 4.启动网卡,分配RX,TX队列,注册中断对应的处理函数 创建ksoftirqd内核线程 Linux的软中断都是在专门的内核线程...NET_TX_SOFTIRQ的处理函数为net_tx_action,NET_RX_SOFTIRQ的为net_rx_action。...也就说在高流量压力情况下,只有生产消费优化后,消费能力够快,此生产消费关系才可以正常维持,所以如果物理接口有丢包计数时候,未必是网卡存在问题,也可能是内核消费的太慢。...()将sk_buff下送网卡驱动 3、网卡驱动将sk_buff放入tx descriptor ring,更新TDT 4、DMA感知到TDT的改变后,找到tx descriptor ring中下一个将要使用的

    4.6K21
    领券