ESXi 8.0下瑞昱RTL8125BG网卡断流排障与修复

发布时间:2026/10/8 20:24:07
ESXi 8.0下瑞昱RTL8125BG网卡断流排障与修复 最近给一台老工作站装了ESXi 8.0板载的瑞昱RTL8125BG螃蟹网卡差点把我心态搞崩。原生镜像不认这张卡折腾了半天才把社区版驱动VIB集成进系统网卡总算是被识别了。结果跑起来之后网络隔三差五就断一下ping网关延迟突然飙到几百毫秒虚拟机里做大规模文件复制甚至会直接掉线管理界面偶尔登不进去。这不是物理断线link灯始终亮着但数据面就是不正常。我相信很多用消费级主板跑虚拟化的朋友都有同感。这篇文章就是我这次完整的排障记录从定性“断流到底是谁的锅”到用esxcli一条条关闭螃蟹卡的低功耗特性、改电源策略、固定协商速率最后把问题压下去的全过程。内容不绕弯子命令和思路都能直接抄适合那些已经装上社区驱动、但被断流折磨得想砸键盘的人。1. 为什么ESXi 8.0会对瑞昱网卡“区别对待”1.1 原生不支持的原因企业认证与稳定性门槛先说说根子上的问题。VMware的硬件兼容性列表里网卡这一项基本被Intel、Broadcom、Mellanox这些传统服务器网卡厂商包揽瑞昱Realtek的产品极少出现。这不是什么“技术歧视”而是vSphere对网卡驱动的要求非常苛刻必须通过VMware的认证并且要能在VMkernel这个独立内核上稳定工作。瑞昱的网卡芯片绝大多数用在消费级主板、迷你主机和DIY整机上官方几乎没有针对ESXi做驱动开发更不会去走认证流程。ESXi 8.0内核升级之后很多老驱动直接失效社区只能在Linux r8168/r8125驱动的基础上做移植编译成VIB包供大家使用。也就是说你装进去的驱动本质上不是VMware官方认可的东西而是“能用就好”的民间方案。1.2 集成驱动后的“假装稳定”与断流的典型特征驱动VIB装完esxcli network nic list里能看到vmnic0link状态也显示Up但这只能说明驱动加载成功、网卡和交换机之间完成了物理协商。ESXi里“能识别”和“能稳定跑满”是两个完全不同的世界。我这次遇到的断流现象很有代表性空闲一段时间后第一次ping包延迟飙到200ms以上甚至直接丢包持续ping时偶发性丢失3到5个包然后又恢复正常大流量传输比如vMotion、备份、虚拟机间拷贝时网络连接直接卡死虚拟机内部访问外网时好时坏但管理口vSphere Client却不掉线网卡link灯全程正常交换机端口也没有告警。出现这种情况不要一上来就怪驱动垃圾。虽然社区驱动确实容易背锅但更常见的原因是螃蟹卡默认开启的节能特性和ESXi的电源策略打架。你要先搞清楚断流的具体触发场景再对号入座去修。1.3 断流的大致三类原因驱动本身、电源管理、协商配置以我实际踩坑的经验断流可以归纳成三类。第一类是驱动本身处理能力不够。瑞昱社区驱动在中断处理、环形缓冲区分配、多队列支持上和Intel企业级网卡驱动有差距。一旦虚拟交换机流量增大单队列或者缓冲区太小就会丢包。第二类是电源管理导致的链路假死。螃蟹卡为了省电默认可能开启EEE节能以太网、ASPMPCIe主动电源管理这些特性。流量一低链路和PCIe总线就进入低功耗状态等下一波数据来的时候网卡唤醒不及时延迟尖峰和丢包就出现了。第三类是自动协商不稳定。2.5G网卡和交换机端口协商不干净或者网线质量差导致误码率高也会表现为间歇性断流。这三类原因不是互斥的往往同时存在。所以我的解决思路是层层收紧从驱动参数到系统策略再到物理协商一步一步把问题的空间压缩到最小。2. 排障之前先做三件事确认网卡、确定驱动模块和建立基线2.1 把网卡型号和驱动模块真实身份搞清楚别急着改参数先花五分钟做信息收集。在ESXi Shell里执行lspci | grep -i realtek esxcli network nic listlspci能确认网卡芯片型号比如我的机器就是RTL8125BG。esxcli network nic list能拿到vmnic编号、速率和驱动名称。然后确认当前加载的驱动模块名这一步很关键因为后面所有参数设置都要用到模块名esxcli system module list | grep -i r8168不同VIB包对应的模块名不一样。有的叫r8168有的叫r8125还有的驱动叫net-r8168。我这边RTL8125BG对应的模块名是r8125。如果模块名搞错了后面设置参数会直接报“模块不存在”。另外建议顺手看一下当前VIB版本esxcli software vib list | grep -i realtek记录下版本号方便后面升级或者回退。2.2 建立“断流基线”用什么工具量化“断”没有基线数据你改完参数就没法判断有没有效果。我的方法是三个工具配合使用。第一个是vmkping专门用来Ping管理口的vmkping -I vmk0 -c 200 -i 0.2 网关IP-I指定源接口-i 0.2表示每200毫秒发一个包连续200个。重点看丢包率和最大延迟。如果这里已经有丢包说明问题出在网卡本身、驱动栈或物理链路。第二个是esxcli network nic stats getesxcli network nic stats get -n vmnic0看输出里的rx_errors、tx_errors、rx_dropped这些计数器。如果错误包在增长说明驱动或链路层有异常。第三个是iperf3。ESXi本体没有iperf3但在虚拟机里可以装。在虚拟机和另一台物理主机之间跑TCP带宽测试观察吞吐是否稳定。如果吞吐曲线大幅波动或者中途连接断开断流问题就非常明确了。2.3 别急着改参数先排除物理层和交换机软件层的问题经常被物理层问题掩盖。如果网线是那种两块钱一米的劣质超五类线或者水晶头压得不好2.5G协商状态下的误码率会非常高断流只是表象。我这次排查时特意检查了三个地方网线换了一根成品六类线排除线序和氧化问题交换机端口强制成了2.5G Full看协商是否稳定把同一根线插到另一台非ESXi机器上跑满速测试确认物理链路本身没有丢包。如果你用的是家用交换机还要注意交换机的节能模式部分交换机会主动把空闲端口降到低速率。ESXi这边也要确保网卡速率没有被自动协商搞成100M。提示如果管理口只有一个网卡后续修改驱动参数、固定速率之前一定确认有本地控制台或者BMC/IPMI通道。不然一条命令下去网络断了你又没法远程救回来就只能跑机房了。3. 解决断流的五个核心方法从软件到硬件逐级收紧3.1 方法一确认驱动VIB是否装对不要一股脑用最新版社区版驱动不是越新越好。ESXi 8.0本身还有Update 1、Update 2这些版本VIB在编译时只针对特定build跨版本硬装经常会有兼容问题。如果你是通过离线VIB直接安装的先确认一下VIB是否真的加载esxcli software vib list | grep -i realtek esxcli system module list | grep -i r8125如果驱动模块加载了但断流严重可以先换一个历史稳定版本或者反过来升级到最新版以实测为准。我遇到过某个版本1.8.0的RTL8125驱动在8.0 U1上断流严重回退到1.7.2反而非常稳。更换VIB的标准流程是这样的esxcli system maintenanceMode set -e true esxcli software vib remove -n r8125 esxcli software vib install -v /tmp/r8125-xxx.vib esxcli system maintenanceMode set -e false注意所有驱动模块的卸载和安装都建议在维护模式下做避免正在使用的业务虚拟机流量中断。3.2 方法二关闭网卡低功耗特性EEE/ASPM——大多数断流的元凶这是整个排障过程中最关键的一步。螃蟹卡默认的节能特性在虚拟化场景下非常容易变成“卡死”的元凶。EEE和ASPM这些特性本质上都是让网卡在没有流量的时候进入低功耗状态等数据来的时候再快速唤醒。问题在于虚拟机网络流量是突发性的唤醒速度跟不上延迟和丢包就来了。ESXi里可以通过驱动模块参数关闭这些特性esxcli system module param set -m r8125 -p eee_enable0 esxcli system module param set -m r8125 -p aspm_enable0不同版本驱动暴露的参数名不一定完全一样。执行之前先用下面的命令看看当前驱动支持哪些参数esxcli system module param list -m r8125如果列表里出现了eee_enable、aspm_enable、pcie_aspm这类关键字就说明支持。如果找不到千万不要自己瞎猜参数名硬塞进去最好去查一下VIB包自带的README文档。我在实际操作中只改了eee_enable0和aspm_enable0效果立竿见影。修改之后需要重启或者重载驱动模块。重载模块的命令是vmkload_mod -u r8125 vmkload_mod r8125但要注意卸载正在被vmnic0使用的驱动会导致管理网断开远程操作会瞬间失联。所以我当时的做法是直接重启主机重启后参数依然生效因为esxcli system module param set会把配置持久化到系统配置里。3.3 方法三把电源策略切到HighPerformance并关闭PCIe链路节能除了网卡自身的节能ESXi的全局电源策略也会影响PCIe设备的链路状态。默认情况下ESXi的电源策略是Balanced它允许CPU和PCIe设备在低负载时降频、降功耗。用下面的命令查看当前策略esxcli system settings power list切换到HighPerformanceesxcli system settings power set -p HighPerformance这个设置同样建议修改后重启主机。在BIOS层面顺手把以下几个选项全部关掉ASPMActive State Power ManagementGlobal C-StatesC6/C7节能Green Ethernet、EEE有些主板也叫Energy Efficient Ethernet不同厂商的主板BIOS叫法不一样但关键字基本都是这些。BIOS里的电源管理选项对网卡稳定性的影响往往比ESXi里还大。我一开始没关BIOS的ASPM只改了ESXi参数断流频率下降了不少但偶尔还会有延迟尖峰把BIOS里的ASPM关掉之后问题才算彻底干净。3.4 方法四用固定速率和双工模式替代自动协商如果断流发生在特定的速率协商场景下固定速率是最快的暴力解法。比如你的交换机只有千兆口但螃蟹卡支持2.5G它会尝试协商2.5G交换机端支持不了就会退回到千兆。这种反复协商的过程有时候不稳定。在ESXi里可以强制指定速率esxcli network nic set -n vmnic0 -S 1000 -d full -A false-S后面是速率单位Mbps-d指定双工模式这里写full-A false关闭自动协商。这条命令有风险如果网卡不支持你指定的速率链路可能起不来。我建议在本地控制台前面操作改完如果ping不通马上用下面的命令恢复自动协商esxcli network nic set -n vmnic0 -A true固定速率对于排查问题非常有效。它能帮你确认断流到底是不是自动协商的锅。如果固定到千兆之后完全不丢包说明链路协商或网线质量有猫腻如果固定速率后依然丢包问题大概率在驱动或电源管理。3.5 方法五调整中断和环形缓冲区参数进阶有些螃蟹卡驱动即使关闭了低功耗在大流量下依然会有丢包这是因为驱动默认的Ring Buffer环形缓冲区大小或中断模式不适合虚拟化环境。如果你在驱动文档里看到了类似RxRingSize、TxRingSize、IntrMode这类的参数可以试着调大环形缓冲区减少因缓冲区满导致的丢包。示例如下esxcli system module param set -m r8125 -p RxRingSize4096注意并不是缓冲区越大越好。缓冲区太大数据在驱动层排队时间变长延迟反而会升高。我最终是把接收环形缓冲区调到4096发送缓冲区保持默认值因为这个问题主要出在接收方向上。中断模式的调整要更谨慎。某些螃蟹卡驱动在MSI中断和传统中断之间切换会影响CPU占用和丢包表现。这类参数在不同版本驱动之间变化很大我就不给固定答案了原则是一次只改一个参数改完重启然后立刻用基线操作做对比。如果连续改了多个参数出了新问题你将很难判断是哪个参数导致的。4. 完整实操过程我的RTL8125BG断流修复实录4.1 修改驱动参数的完整命令序列含重启下面是我在ESXi 8.0 U1上完整跑过的流程网卡是板载RTL8125BG驱动模块名r8125VIB版本为社区提供的1.8.0。整个过程依赖本地控制台或带外管理不建议纯SSH远程操作。先进入维护模式避免业务流量在改动过程中受影响esxcli system maintenanceMode set -e true确认模块名和当前参数esxcli system module list | grep -i r8125 esxcli system module param list -m r8125关闭EEE和ASPM我是逐条执行的esxcli system module param set -m r8125 -p eee_enable0 esxcli system module param set -m r8125 -p aspm_enable0然后切换电源策略esxcli system settings power set -p HighPerformance退出维护模式并重启esxcli system maintenanceMode set -e false reboot重启后再次查询驱动参数确认之前的设置还在esxcli system module param list -m r8125 | grep -E eee|aspm我当时看到的输出里eee_enable和aspm_enable都变成了0说明修改生效且持久化成功。4.2 电源策略和BIOS层面的修改过程ESXi电源策略改成HighPerformance之后我又进了主板BIOS。这一步很关键因为ESXi层面的设置只能约束系统自己改不了主板固件里对PCIe链路功耗的默认策略。我的板子是华硕的BIOS里需要改动的地方Advanced PCH Configuration PCIe Link Power Management设为DisabledAdvanced CPU Configuration CPU Power Management关闭C6/C7C-State设为DisabledAdvanced Onboard Devices Configuration Realtek LAN Controller Green Ethernet设为Disabled。不同品牌BIOS菜单位置差异巨大但核心逻辑是一致的凡是和PCIe ASPM、CPU节能、网卡节能相关的选项全部关掉。这一步做完相当于把网卡的“低功耗自动刹车”彻底拆掉了。4.3 修改后的验证ping、iperf3、持续时间改完重启后我先用vmkping做了一轮高强度测试vmkping -I vmk0 -c 1000 -i 0.2 网关IP结果1000个包丢包0最大延迟2.1ms平均延迟0.3ms。和修改前对比非常明显修改前同样测试丢包率在1%到3%之间最大延迟经常超过200ms。接着在虚拟机里用iperf3打流物理机作为服务端iperf3 -c 物理机IP -t 60 -P 4TCP吞吐稳定在2.35Gbps左右没有出现断流或吞吐塌陷。使用UDP模式连续打了5分钟rx_errors和rx_dropped计数器没有任何增长。最后是长时间的稳定性观察。修改完成后这台主机连续运行了14天期间没有一次断流vCenter里也没有网络告警。期间跑过两台虚拟机之间的约200GB数据迁移网络始终稳定。注意如果你的驱动模块是r8168而不是r8125命令里的模块名一定要相应替换。参数名以esxcli system module param list输出的实际结果为准不要生搬硬套。5. 常见问题与避坑指南速查5.1 常见断流场景与处理对照我把排查过程中有价值的信息整理成了一张表方便你根据自己的现象直接对号入座。现象可能原因处理建议空闲几分钟后第一次ping延迟高甚至丢包EEE/ASPM低功耗唤醒延迟关闭eee和aspmBIOS关闭ASP M大流量传输时断流VM拷贝任务中断驱动环形缓冲区不足或中断处理瓶颈调大RxRingSize检查驱动版本网卡link灯正常但ESXi管理口间歇性失效PCIe链路进入低功耗状态后被重置关闭BIOS的C-State和ASPM长时间运行后速率从2.5G跌到100M网线质量差、协商不稳定换六类网线固定速率到千兆测试修改参数重启后又恢复默认驱动模块名错误或VIB未持久化用module param list确认模块名重新set驱动升级后出现新的断流VIB版本与ESXi build不兼容回退到之前稳定的VIB版本5.2 参数修改和速率调整时最容易翻车的几个地方先说说最容易踩的坑。第一个坑是远程改网卡参数网络瞬间断开后无法恢复。我自己就犯过这个错固定速率的命令刚按下去SSH连接直接卡死好在旁边有IPMI重启后恢复了。所以在做任何可能影响管理网络的修改前必须确保有本地控制台或带外管理通道。第二个坑是参数名写错。esxcli system module param set如果指定了模块不支持的参数命令通常会报错但有些驱动版本会静默忽略。你不要执行完看命令返回0就认为成功了一定要用param list再查一遍。第三个坑是BIOS设置和ESXi设置冲突。ESXi里关了ASPM但BIOS里没有关那么网卡仍然可能进入低功耗状态。因为BIOS对PCIe链路电源管理的优先级更高ESXi驱动未必能完全覆盖。第四个坑是只改参数不测试。改完一个参数后至少要稳定观察一两天再做结论。有些断流问题本身是偶发的改完立刻ping 200个包没丢并不能说明问题根除。我建议至少做24小时连续监控再看统计结果。5.3 调完仍然断流的退路如果上面这些方法全部试完断流问题依然顽固那就不建议继续在螃蟹卡上死磕了。社区驱动毕竟不是官方认证的东西在某些主板、某些PCIe通道环境下兼容性问题不是靠参数能解决的。我会考虑的退路有这几条加一块Intel i210/i225/i226的PCIe网卡几十到一百多块钱稳定性完全不一样用双网卡做管理口的active/standby至少断流时不会彻底失联把螃蟹卡降级到千兆固定速率使用降低处理压力检查是否为PCIe插槽或主板供电问题换个插槽测试。我自己在测试环境里依然保留螃蟹卡毕竟白嫖一张2.5G口挺香。但生产环境或者跑重要业务虚拟机的主机我最终还是会换成Intel网卡。这不是看不起瑞昱而是在虚拟化这个场景里稳定性的优先级永远高于性价比。最后再分享一个操作习惯每次修改驱动参数前我都会把esxcli system module param list -m r8125的完整输出存一份改完后对比差异。这个习惯帮了我很多次至少回退的时候不用瞎猜之前改了什么。另外/var/log/vmkernel.log里如果频繁出现网卡reset或link down/up的日志记得先看日志再动手那说明问题很可能在PCIe链路稳定性上而不是单纯的节能问题。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询