linux 2.6.33为什么只有个一个核心响应软中断

linux 2.6.33为什么只有个一个核心响应软中断,第1张

先说说环境1.硬件:DELL R410

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就该这么学》这本书


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7975986.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存