网卡丢包问题解决

1、 查看局域网内是否有MAC冲突;

2、 UDP丢包可以先增大协议栈缓存空间:

接收端:

echo 2129999999 > /proc/sys/net/core/rmem_max  # 最大的TCP接收缓冲

echo 2129999999 > /proc/sys/net/core/rmem_default  # 默认接收TCP缓冲

发送端:

echo 2129999999 > /proc/sys/net/core/wmem_default  # 默认TCP发送缓冲

echo 2129999999 > /proc/sys/net/core/wmem_max  # 最大的TCP发送缓冲

注:发送端的wmem_default不能大于接收端的rmem_default。

3、 查看ethtool -S <网口名> | grep -E “error|drop”:

复制代码
rx_crc_errors: # 计数不为0代表有CRC错误,一般是模块或者网线问题,考虑先更换光纤/网线及光模块。

rx_fifo_errors:# Ring buffer满而导致丢包,通过ethtool -g查看当前值与最大值,ethtool -G ethx rx <rx> tx <tx>修改tx、rx Ring Buffer。

rx_missed_errors:# CPU处理不过来DMA中的ring buffer缓存报文导致的丢包。

# 解决方法是:

a)# 网口中断绑定到不同的CPU;

b)# UDP流量可以开启RSS;

c)ethtool -G ethx rx <rx> # 增加队列深度,注意一般arm平台的OS页大小是64k,增加队列深度会导致内存占用高,可配合修改驱动源码中src/ kcompat.h文件解决。

d)numactl -H # 查看网卡numa node对应的内存使用情况,如内存占用过高会跨节点访问其他内存,导致处理速率慢,可通过绑核及增大物理内存解决。
复制代码

4、两端开启流控:

开启命令:

ethtool -A enp217s0f0 rx on tx on

查看状态命令:

ethtool -a enp217s0f0

 

posted @   杨灏  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2024-01-04 鲲鹏服务器打开规范定制化开关
2023-01-04 linux 由于地址冲突导致network起不起来
2023-01-04 Easy IP实现多个私网地址转换成公网地址
2023-01-04 通过(MSTP)实现VLAN数据的负载分担
点击右上角即可分享
微信分享提示