信创项目里,网卡纸面参数都对,上机就是跑不出该有的带宽——这种状况在2024到2025年间相当普遍。到了2026年,国产网卡芯片方案覆盖了从千兆到100G的完整速率段,驱动适配也改善了不少,但不同CPU平台之间的差异仍然是部署中最容易踩坑的地方。本文记录了三款国产CPU搭配四款国产网卡的实际部署过程,从开箱到跑通iperf,每一步都标注了在哪出了问题、怎么解决。
本次验证覆盖三种CPU架构和四款网卡,操作系统统一用麒麟V10 SP1(内核5.10)和统信UOS 1070。
| 产品型号 | 芯片方案 | 端口 | 速率 | PCIe | 功耗 |
|---|---|---|---|---|---|
| LRES1031PF-2SFP+ | 沐创 RNP N10 | 双口SFP+ | 10G | 3.0 x8 | 7.2W |
| LRES1002PF-2SFP+ | 国产主控 | 双口SFP+ | 10G | 3.0 x8 | 7.6W |
| LRES1530PF-2SFP28 | 网迅 WX5025 | 双口SFP28 | 25G | 3.0 x8 | 8.98W |
| SP670 | 华为海思Hi1822 | 双口QSFP28 | 100G | 4.0 x16 | 29W |
| LRES1048PT | 沐创 RNP N500 | 四口RJ45 | 1G | 2.0 x4 | 1.8W |
CPU平台选了三款有代表性的:飞腾S2500(ARM,信创服务器出货量较大)、鲲鹏920(ARM,华为生态)、龙芯3A5000(LoongArch,自主指令集)。海光和兆芯的x86平台也做了部分对照测试,后文会提到。
网卡插到服务器之前,有三件事值得花时间确认。
PCIe插槽带宽匹配。国产服务器主板的PCIe插槽分配不像x86那么标准化。在飞腾S2500主板上,靠近CPU的x16物理槽位可能只跑了x8电气信号——插 LRES1031PF-2SFP+ 这种x8的卡没问题,但插 SP670 这种需要x16的100G卡,必须找到真正走x16电气信号的槽位。用 lspci -vvv 查看 LnkSta 字段确认(参考 PCI-SIG PCIe 规范)。
半高还是全高。信创服务器机箱规格参差不齐,2U机箱一般能装全高卡,1U和部分边缘设备只能装半高。上述五款网卡都提供半高和全高两种挡板配置,但订货时需要确认。
光模块兼容性。SFP+和SFP28端口插上光模块后不亮,大概率是兼容性问题。用 ethtool -m ethX 读取光模块的DDM信息,如果能看到温度、光功率数据,说明识别成功。如果显示 Not Supported,先换一根DAC铜缆试试——DAC不存在兼容性问题。
拿到网卡后先不装进服务器,用 lspci 记录主板所有PCIe槽位的当前状态,装好网卡后再跑一遍 lspci -vvv | grep -A5 "Network",对比前后变化,能快速确认链路协商是否正常。
驱动适配是信创部署中最花时间的环节。同一个网卡在不同CPU架构上的安装过程可能完全不同。
飞腾S2500(ARM)。麒麟V10 SP1内核5.10,沐创RNP N10和网迅WX5025的驱动已内置,插上 LRES1031PF-2SFP+ 后自动加载 mucse 驱动模块。LRES2045PT 也一样免驱。但飞腾主板BIOS里的 PCIe ASPM 默认开启,某些网卡上会导致链路不稳定(间歇性掉线),进BIOS关掉就行。
鲲鹏920(ARM)。驱动情况和飞腾类似,内核5.10以上基本免驱。注意:BIOS中 IOMMU 默认关闭,要用SR-IOV必须先在BIOS里开启,否则 echo 4 > /sys/class/net/ethX/device/sriov_numvfs 会报错。
龙芯3A5000(LoongArch)。手动操作最多的平台。内核虽然到5.15+,但沐创RNP N10的驱动在LoongArch上仍需手动打补丁编译。沐创官方已提供龙芯适配补丁包,从LR-LINK技术支持可以拿到。网迅WX1860在龙芯上基本免驱。
| CPU平台 | 架构 | 驱动安装 | IOMMU | 特别注意 |
|---|---|---|---|---|
| 飞腾S2500 | ARM | 免驱(内核5.10+) | 默认关闭,需手动开启 | 关闭ASPM可避免链路不稳 |
| 鲲鹏920 | ARM | 免驱(内核5.10+) | 默认关闭,需手动开启 | SR-IOV必须开启IOMMU |
| 龙芯3A5000 | LoongArch | 部分需手动编译 | 默认开启 | 沐创N10需打补丁 |
| 海光(对照) | x86 | 全部免驱 | 默认开启 | 兼容性最好 |
如果服务器还在用麒麟V10的早期版本(2019年初始发行版,内核4.19),或者统信UOS 1050之前的版本,主流国产网卡驱动都需要手动编译。部署前先用 uname -r 确认内核版本,低于5.10的提前联系LR-LINK获取预编译驱动包。
测试采用双节点对测架构,中间用信创交换机互联。工具统一用 iperf3(IETF 标准测试方法),TCP 和 UDP 都跑,先看单线程再多线程。
飞腾S2500平台。LRES1031PF-2SFP+(10G双口)单线程TCP跑到6.8Gbps,8线程到9.3Gbps。LRES1530PF-2SFP28(25G双口)单线程16Gbps,8线程到23.5Gbps。数据在预期范围内。
鲲鹏920平台。10G网卡表现和飞腾接近。25G网卡的单线程成绩略好,跑到18Gbps——鲲鹏920的PCIe 4.0接口在带宽上有余量,虽然网卡本身是PCIe 3.0 x8,但SoC内部互联带宽更大,单队列效率稍高一些。
龙芯3A5000平台。10G网卡单线程5.5Gbps,多线程能到9.1Gbps。龙芯平台的单线程性能受限于CPU主频和内存延迟,但多线程下带宽基本能跑满。
UDP小包(64字节)测试中,国产网卡在线速转发时存在0.01%-0.1%的丢包率。这和驱动层面的队列管理有关——不是硬件不行,是软件优化还在迭代。一个零成本的改善办法:用 ethtool -G ethX tx 2048 rx 2048 把ring buffer调大,丢包率能明显降低。
国产网卡驱动的默认ring buffer值偏保守。用 ethtool -G ethX tx 2048 rx 2048 把tx/rx从默认的512调到2048,在小包场景下能明显降低丢包率。这条命令对沐创RNP N10和网迅WX5025都有效。
跑了几个月的信创项目,碰到一些反复出现的问题。
网卡识别正常但速率只有1G。大概率是PCIe插槽降速了。用 lspci -vvv 检查 LnkSta 字段,如果显示 Speed 2.5GT/s, Width x1,说明卡插在低速槽位了。换到直连CPU的槽位就行。这个问题在飞腾主板上出现频率最高。
光模块插上去不亮。先确认光模块和网卡速率匹配。如果速率匹配还不亮,用 ethtool -m ethX 看光模块DDM信息,完全读不到数据可能是兼容编码不对。
系统重启后网卡消失。和PCIe的ASPM节能有关。飞腾平台BIOS默认开启ASPM L1状态,某些网卡在低功耗状态下会被系统丢掉。进BIOS关闭ASPM,或在GRUB加 pcie_aspm=off。
iperf单线程跑不满但多线程正常。通常不是bug,是国产网卡驱动的单队列效率问题。开8线程能到线速90%以上就说明硬件没问题,只是单队列效率瓶颈,在当前国产方案中属正常现象。
部署验证四步走
| 场景 | 推荐型号 | 速率 | 关键理由 |
|---|---|---|---|
| 管理网络/低带宽 | LRES2045PT | 1G双口 | 2W功耗,全平台免驱 |
| 信创服务器通用接入 | LRES1031PF-2SFP+ | 10G双口 | 沐创RNP N10,驱动最成熟 |
| 高密度端口需求 | LRES1048PT | 1G四口 | 沐创RNP N500,四口千兆RJ45 |
| 高性能计算/数据库 | LRES1530PF-2SFP28 | 25G双口 | 网迅WX5025,带宽余量大 |
| 数据中心骨干互联 | SP670 | 100G双口 | 华为海思Hi1822,支持RoCE v2 |
选型的核心逻辑:管理网选稳定的(千兆免驱),通用接入选生态最成熟的(10G沐创方案),高性能场景选驱动单队列效率好的(25G网迅方案在鲲鹏上表现突出),骨干层选平台整体生态匹配的(100G华为方案在鲲鹏平台上端到端一致性最好)。
取决于网卡芯片和内核版本。网迅WX1860在龙芯3A5000/3A6000上基本免驱。沐创RNP N10在LoongArch架构上需要手动打补丁编译驱动,补丁包可以从LR-LINK技术支持获取。建议部署前确认内核版本(uname -r),低于5.15的务必提前准备驱动。
两者都是ARM架构,但SoC内部互联设计不同。实测中,LRES1530PF-2SFP28在飞腾S2500上8线程跑到23.5Gbps,在鲲鹏920上单线程就能到18Gbps(飞腾约16Gbps)。差异来自鲲鹏920的PCIe 4.0接口带来的内部带宽优势。多线程下两者差距缩小,都能接近25G线速。
SP670基于华为海思Hi1822,支持RoCE v2和DPDK,在鲲鹏920上驱动适配最顺畅——毕竟同一生态。在飞腾平台上也能正常使用,但RDMA环境需要额外配置。如果项目不要求全国产芯片,100G方案的选择余地会更大。
PCIe标准层面的热插拔(Hot-Plug)功能,上述网卡都支持。但在实际信创服务器部署中,热插拔操作通常需要在BIOS中开启对应槽位的Hot-Plug支持,并且操作系统内核版本不能太低。建议非必要不做热插拔——信创环境的热插拔稳定性验证还不够充分,停机维护时操作更稳妥。
用iperf跑TCP多线程测试,看吞吐量是否达到标称速率的90%以上(10G网卡应到9Gbps+,25G应到23Gbps+)。如果差得远,先用 lspci -vvv 确认PCIe链路宽度和速率是否正确,再用 ethtool -G 调大ring buffer,最后检查中断亲和性(cat /proc/interrupts | grep eth)是否均衡分布在多个CPU核心上。
如果你在信创网卡选型或部署过程中遇到问题,可以联系 LR-LINK 技术支持团队获取免费的选型建议和驱动适配指导,或查看 国产化系列网卡完整产品列表,按速率和接口筛选适合你项目的型号。