配置增强高速网卡的核心在于驱动兼容性与功能启用,RedHat、CentOS、Oracle Linux和Euler系列在步骤上大同小异,但各有细微差别,掌握这些差异就能快速完成部署。
RedHat系列配置增强高速网卡步骤详解
确认硬件与系统环境
先通过lspci -v | grep Ethernet确认网卡型号,再用ethtool -i eth0查看当前驱动,多数服务器配备Intel或Mellanox网卡,RedHat 7/8/9自带驱动版本较老,建议从芯片厂商官网获取最新驱动包。内网核心业务场景下,驱动版本直接决定SR-IOV和DPDK功能是否可用。
安装官方驱动并启用SR-IOV
- 下载驱动:Intel网卡选
i40e-2.x.x.tar.gz,Mellanox选mlx5_core源码包。 - 编译安装:
make install后modprobe i40e,重启systemctl restart network。 - 开启SR-IOV:在BIOS开启VT-d,内核参数追加
intel_iommu=on iommu=pt,然后通过echo 7 > /sys/class/net/eth0/device/sriov_numvfs创建7个VF。 - 配置虚拟功能:
ethtool -K eth0 gro on等调优,再用ip link set eth0 vf 0 mac 00:11:22:33:44:55分配MAC。
验证性能与稳定性
运行ethtool -S eth0检查有无rx_errors,再用iperf3测试吞吐。行业共识认为,SR-IOV后延迟降低约一个数量级,CPU占用明显下降,若遇到丢包,先检查cat /proc/interrupts确认中断是否均匀分布,再调整RSS队列数。
CentOS下增强网卡驱动安装与性能对比
使用elrepo仓库一键安装
CentOS自带的驱动版本往往落后,尤其在新网卡上容易报错,推荐通过yum install elrepo-release添加仓库,然后yum install kmod-xxx(xxx对应网卡型号)自动解决依赖。CentOS 7与CentOS 8在驱动模块名上略有差异,但替换后均可正常工作。
网络绑定配置示例
生产环境常用bonding做链路聚合,避免单点故障,编辑/etc/sysconfig/network-scripts/ifcfg-bond0如下:
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast"
IPADDR=192.168.1.10
NETMASK=255.255.255.0
将物理网卡eth0、eth1的配置改为MASTER=bond0 SLAVE=yes,重启网络即可。国内服务器场景下,绑定模式多用802.3ad,需交换机支持LACP。
常见问题排查
- 驱动加载后
ip link未显示对应接口:检查dmesg | grep -i i40e,确认是否缺少固件。 - VF数量创建失败:查看
cat /var/log/messages,通常因BIOS未开启虚拟化支持。 - 性能未达预期:用
ethtool -c eth0查看中断合并参数,适当调低rx-usecs。
Oracle Linux配置增强网卡适用场景与内核选择
UEK内核与驱动兼容性
Oracle Linux默认使用UEK内核,内置大量网卡驱动,但部分新硬件需要手动升级。运行Oracle数据库的场景建议保留UEK,因为其内存管理对数据库更友好,若需使用DPDK,推荐切换到Red Hat Compatible内核,避免UEK对用户态驱动的限制。
使用yum安装第三方驱动
- 添加
ol7_developer_EPEL源:yum install oraclelinux-developer-release-el7。 - 安装Intel全套驱动:
yum install i40e-2.13.10-1(版本号据实际)。 - 加载后通过
ethtool -i eth0确认驱动版本,并用lsmod | grep i40e检查模块状态。
性能调优参数
编辑/etc/sysctl.conf,针对高速网卡调整:
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.core.netdev_budget = 600
保存后sysctl -p即刻生效。据统计,调优后小包转发能力提升约30%,具体数值视硬件而定。
EulerOS系列网络性能调优场景
华为自研网卡配置要点
EulerOS常用于华为云服务器,自带hinic驱动,通过lspci -n | grep 19e5确认华为网卡,然后使用modprobe hinic加载,若版本过旧,从华为开源社区下载hinic-2.3.x.rpm,rpm -ivh安装后重启。在云服务器配置高速网卡时,需额外开启网卡多队列:ethtool -L eth0 combined 8。
DPDK环境搭建
- 安装依赖:
yum install -y numactl-devel libpcap-devel。 - 下载DPDK源码,
make config T=x86_64-native-linuxapp-gcc后编译。 - 绑定网卡:
./dpdk-devbind.py -b vfio-pci 0000:03:00.0。 - 运行
验证转发能力,业界专家指出,DPDK配合EulerOS可达到线速处理。testpmd
内核参数优化
针对网络密集型业务,调整以下参数:
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
net.core.busy_read = 50
net.core.busy_poll = 50
修改后sysctl -p,注意busy_read和busy_poll需CPU支持。
配置增强高速网卡常见问题
RedHat和CentOS配置高速网卡有哪些区别?
两者底层驱动完全兼容,但CentOS通过elrepo能更便捷地获取新驱动,而RedHat需订阅官方仓库。内网使用场景下,CentOS省去订阅成本,适合预算有限的中小企业,核心区别在于NetworkManager版本不同,配置文件路径一致。
Oracle Linux使用UEK内核时如何确认网卡功能正常?
运行uname -r查看内核版本,再用ethtool -i eth0确认驱动模块,若发现vf数无法创建,查看/boot/grub2/grub.cfg中是否包含intel_iommu=on。UEK对虚拟化支持较完善,多数情况下无需额外编译驱动。
EulerOS下如何验证网卡已开启增强特性?
通过ethtool -l eth0观察Combined队列数,若大于1则多队列已启用,再用cat /proc/interrupts | grep eth0检查中断是否分散到不同CPU。使用dpdk-devbind.py --status可确认网卡已被DPDK接管,这是判断高速网卡是否进入用户态模式的最直接证据。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/538212.html



