网卡丢包问题解决
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源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数据的负载分担