
2.网卡:板载1000M BCM5709
2.OS: RHEL 5.5 x86_64
3.KERNEL: 2.6.18-194.el5
所出现的问题
1.网卡毫无征兆的down掉,而且没有任何log信息
2.当流量增大时,不到理论上限的1/3时机器出现网络延迟严重,伴随大量的丢包
3.机器的cpu软中断不均衡,只有1个cpu处理软中断,并且该cpu的软中断周期性的达到100%
4.内外网网卡做nat丢包数据量不一致,差别很大,不在同一个数量级
想必第一个问题,大部分使用bcm网卡,rhel 5.3以后得机器都会遇到这种情况,网上的资料比较的多,我也不多啰嗦了,直接升级网卡驱动就可以解决了。第二,三,四其实是同一个问题都是由于网卡中断过多,cpu处理不过来(准确的说,cpu分配不均衡,导致只有一个cpu处理,处理不过来),引起丢包,那么为什么两个网卡丢包的数量级不一样呢,下面从原理上进行解释,既然是做nat多出口,那么就有大量的路由信息,是一个网络应用,当一个数据包请求nat时,数据包先被网卡驱动的数据接收,网卡收到数据时,触发中断。在中断执行例程中,把skb挂入输入队列,并触发软中断。稍后的某个时刻,当软中断执行时,再从该队列中把skb取下来,投递给上层协议。
查看原因 dmesg |tail如果没安装gcc及 kernel-devel 则可以查看
rpm -qa |grep gccrpm-qa |grep kernel-devel
如果没安装,那就老实安装吧,网络存在的情况下安装
yum install gcc
yum install kernel-devel
如果没有网络则需要将光盘中的iso文件设置为yum源
1 挂载光盘 在media/rhel 中建立文件
mkdir /media/rhel
mount /dev/cdrom /media/rhel --如果是图形安装通常已经自动挂载好
ls /media/rhel
2 设置/etc/yum.repos.d/rhel-debuginfo.repo
[base]
name=Server Local Sources
baseurl=file:///media/rhel/Server
enable=1
gpcheck=1
gpgkey=file:///media/rhel/RPM-GPG-KEY-redhat-release
-----------安装相应的网卡驱动 首先将相应的网卡驱动传输到制定的目录中
一、Install RPM Package
1)、rpm -ivh netxtreme2-7.8.56-1.src.rpm
2)、cd/usr/src/redhat
rpm -bb SPECS/netxtreme2.spec
or
rpmbuild -bb SPECS/netxtreme2.spec
3)、rpm -ivh RPMS/x86_64/netxtreme2-7.8.56-1.x86_64.rpm
驱动将会安装在如下的目录中
2.4.x kernels:
/lib/modules//kernel/drivers/net/bnx2.o
/lib/modules//kernel/drivers/net/bnx2x.o
2.6.0 kernels:
/lib/modules//kernel/drivers/net/bnx2.ko
/lib/modules//kernel/drivers/net/bnx2x.ko
2.6.16 and newer kernels:
/lib/modules//kernel/drivers/net/bnx2.ko
/lib/modules//kernel/drivers/net/bnx2x.ko
/lib/modules//kernel/drivers/net/cnic.ko
Newer RHEL and SLES distros:
/lib/modules//updates/bnx2.ko
/lib/modules//updates/cnic.ko
/lib/modules//updates/bnx2x.ko
/lib/modules//updates/bnx2i.ko
/lib/modules//updates/bnx2fc.ko
4)、卸载当前存在的驱动
rmmod bnx2
rmmod bnx2x
如果网卡驱动被装载,需要卸载相关的驱动
rmmod bnx2fc
rmmod bnx2i
rmmod cnic
5)、装载bnx2驱动 for BCM5706/BCM5708/5709/5716 devices:
insmod bnx2.o
or
insmod bnx2.ko
装载bnx2x 驱动 for BCM57710/BCM57711/BCM57711E/BCM57712
insmod bnx2x.o
or
insmod bnx2x.ko
or
modprobe bnx2x
装载 cnic 驱动
insmod cnic.ko
or
modprobe cnic
To load the bnx2i driver:
insmod bnx2i.ko
or
modprobe bnx2i
6)、从新启动
7)、ifconfig -a|more --查看当前网卡驱动 是否已经设置ok
完毕!
建议看看《Linux就该这么学》这本书
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)