我需要强制内核不加载 PC 中 Intel NIC 的驱动程序,看看这是否有助于解决使用同一主板上的第二块 NIC 时出现的性能问题。我该怎么做?
我刚刚在桌面上安装了 Linux Debian Wheezy,因为我非常喜欢 Squeeze。但是我遇到了一个问题,内核在一段看似随机的时间后停止响应 IRQ 16,并使整个机器的速度减慢到无法使用的程度。
谷歌搜索后,发现来自各种发行版和内核的许多人都遇到了同样的问题,但没有解决方案。我检查/proc/interrupts
后发现我的显卡和网卡共享同一个 IRQ,于是决定将显卡移到新插槽,这很有帮助。然而问题仍然存在,只是现在它只对我的英特尔千兆网卡造成问题,导致其性能下降。由于这台机器/主板上有两个网卡,我想尝试禁用该网卡并使用另一个网卡,看看这是否能解决问题。
我怎样才能做到这一点?
以下是有关我的系统的一些信息,可能对您有帮助。我删除了与此案例无关的信息。
hamartin@Sabriel:~$ lspci 00:00.0 主机桥:英特尔公司第二代酷睿处理器系列 DRAM 控制器(rev 09) 00:01.0 PCI 桥:英特尔公司 Xeon E3-1200/第二代酷睿处理器系列 PCI Express 根端口 (rev 09) 00:01.1 PCI 桥:英特尔公司 Xeon E3-1200/第二代酷睿处理器系列 PCI Express 根端口 (rev 09) 00:16.0 通信控制器:英特尔公司 6 系列/C200 系列芯片组家族 MEI 控制器 #1(修订版 04) 00:19.0 以太网控制器:英特尔公司 82579V 千兆网络连接(修订版 05) 00:1a.0 USB 控制器:英特尔公司 6 系列/C200 系列芯片组系列 USB 增强型主机控制器 #2 (rev 05) 00:1b.0 音频设备:英特尔公司 6 系列/C200 系列芯片组家族高清晰度音频控制器(修订版 05) 00:1c.0 PCI 桥:英特尔公司 6 系列/C200 系列芯片组家族 PCI Express 根端口 1 (rev b5) 00:1c.1 PCI 桥:英特尔公司 6 系列/C200 系列芯片组家族 PCI Express 根端口 2 (rev b5) 00:1c.2 PCI 桥:英特尔公司 6 系列/C200 系列芯片组家族 PCI Express 根端口 3(rev b5) 00:1c.3 PCI 桥:英特尔公司 6 系列/C200 系列芯片组家族 PCI Express 根端口 4 (rev b5) 00:1c.4 PCI 桥:英特尔公司 6 系列/C200 系列芯片组家族 PCI Express 根端口 5 (rev b5) 00:1c.6 PCI 桥:英特尔公司 82801 PCI 桥(rev b5) 00:1c.7 PCI 桥:英特尔公司 6 系列/C200 系列芯片组家族 PCI Express 根端口 8(rev b5) 00:1d.0 USB 控制器:英特尔公司 6 系列/C200 系列芯片组系列 USB 增强型主机控制器 #1 (rev 05) 00:1f.0 ISA 桥:英特尔公司 P67 Express 芯片组系列 LPC 控制器(rev 05) 00:1f.2 SATA 控制器:英特尔公司 6 系列/C200 系列芯片组家族 SATA AHCI 控制器(rev 05) 00:1f.3 SMBus:英特尔公司 6 系列/C200 系列芯片组系列 SMBus 控制器(修订版 05) 02:00.0 VGA 兼容控制器:NVIDIA Corporation GF114 [GeForce GTX 560 Ti] (rev a1) 02:00.1 音频设备:NVIDIA Corporation GF114 HDMI 音频控制器(rev a1) 04:00.0 USB 控制器:NEC 公司 uPD720200 USB 3.0 主机控制器(rev 04) 06:00.0 SATA 控制器:JMicron Technology Corp. JMB362 SATA 控制器(rev 10) 07:00.0 USB 控制器:NEC 公司 uPD720200 USB 3.0 主机控制器(rev 04) 08:00.0 PCI 桥:ASMedia Technology Inc. ASM1083/1085 PCIe 至 PCI 桥 (rev 01) 09:02.0 以太网控制器:瑞昱半导体有限公司 RTL-8110SC/8169SC 千兆以太网(rev 10) 0a:00.0 SATA 控制器:Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/s 控制器(rev 11)
请注意,在我移动显卡之前,IRQ 16 仅在 eth0 和 nouveau 驱动程序之间共享。
hamartin@Sabriel:~$ cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 16:400001 0 0 0 0 0 0 0 IO-APIC-fasteoi eth0
内核信息。
hamartin@Sabriel:~$ uname -a Linux Sabriel 3.2.0-4-amd64 #1 SMP Debian 3.2.39-2 x86_64 GNU/Linux
相关日志数据来自/var/log/messages
。这是在我更改显卡位置之前的数据。
3 月 25 日 01:22:50 Sabriel 内核:[4.137920] fb0:nouveaufb 帧缓冲设备 3 月 25 日 01:22:50 Sabriel 内核:[4.137922] drm:已注册紧急通知程序 3 月 25 日 01:22:50 Sabriel 内核:[4.137927] [drm] 已在次版本 0 上为 0000:01:00.0 初始化 nouveau 1.0.0 20120316 3 月 25 日 01:22:50 Sabriel 内核:[4.137966] hda_intel:禁用 MSI
我找不到“屏蔽”到终端窗口的错误消息,我怀疑它没有写入日志。实际上,错误消息表示它停止响应设置为 16 的设备的 IRQ。
如果需要更多信息,请告诉我,我会在看到更新后立即提供。提前感谢您抽出时间提供帮助。
答案1
您可以使用以下步骤将您的模块列入黑名单:
/etc/modprobe.d/<modulename>.conf
创建包含以下内容的文件blacklist <modulename>
depmod -ae
以 root 身份运行- 使用以下命令重新创建 initrd
update-initramfs -u
答案2
如果你不能拔掉你的网卡硬件,你需要定制内核(没有相应的驱动代码被编译进去)。或者删除它的 ko 文件。