作者:sealinger发布时间:December 21, 2010分类:
2010年7月遇到 IBM X3650 M2服务器网卡在RHEL 5.4 X64系统下有时断网和drop包的异常,记录下来希望帮助到有同样问题的人。
已确认问题:
“RHEL 5.3/5.4 自带的Broadcom NetXtreme II BCM5709 网卡驱动有BUG,涉及到 ACPI 电源管理的问题。所以当网卡在正常工作的时候,会被 ACPI 误以为他闲着,从而把它给关闭掉。”
“每次出现这个情况,只需要 service network restart 或者 ifdown/ifup ethX (对于被关闭的网卡端口) 就可以恢复正常。”
注:查看IBM X3650 M2使用的网卡:
[root@cache52 tmp]# lspci
0b:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
0b:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709Gigabit
解决这个问题有2种方法:
1)第一种相对简单,就是在Linux内核中禁用 ACPI 电源管理系统。
vi /boot/grub/grub.conf
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet acpi=off
initrd /initrd-2.6.18-164.el5.img
2)另外一种方法就是升级网卡驱动。
当时IBM官方网站的最新版本是 1.9.20b,下载地址:
[root@cache52 bnx2]# tar zxvf brcm_dd_nic_netxtreme2-1.9.20b_1.50.13_rhel5_32-64.tgz
[root@cache52 bnx2]# nohup ./install.sh --update --override &
[root@cache52 bnx2]# tail nohup.out
Drivers will be installed/migrated to 2.6.18-164 version
----------------------------------------------------------------------
Checking kmod-brcm-netxtreme2-5.0.17-1.x86_64.rpm
......
----------------------------------------------------------------------
kmod-brcm-netxtreme2-5.0.17-1.x86_64.rpm installed successfully
SUCCESS查看升级后的模块信息:
[root@cache52 brcm-netxtreme2]# modinfo bnx2
filename: /lib/modules/2.6.18-164.el5/weak-updates/brcm-netxtreme2/bnx2.ko
version: 1.9.20b
license: GPL
description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
...
RHEL5.4 X64 系统自带的版本:
[root@cache50 ~]# modinfo bnx2 filename: /lib/modules/2.6.18-164.el5/kernel/drivers/net/bnx2.ko version: 1.9.3 license: GPL description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver ...
3)我升级了,网卡不通的问题基本不出现了,但有时还是有Drop包问题,可以尝试调整网卡ring缓冲区参数。
[root@cache54 /]# ethtool -G eth1 rx 1024
[root@cache54 /]# ethtool -g eth1
Ring parameters for eth1:
Pre-set maximums:
RX: 4080(表示最大可调到4080)
RX Mini: 0
RX Jumbo: 16320
TX: 255
Current hardware settings:
RX: 1024(默认255,我们调到了1024)
RX Mini: 0
RX Jumbo: 0
TX: 255
[root@cache54 /]#