Asianux3 报kernel: NETDEV WATCHDOG: eth1: transmit timed out

  昨天接到一个客户的电话,说是有一台服务器的RAC出现问题,并且系统日志里有关于网卡异常的信息,具体表现是从外部ping不通这个机器的IP地址。由于该业务比较重要,所以采取立即重启的动作,重启后一切正常。我到达现场后查看系统日志信息,发现有如下错误信息: 

 Nov 13 01:23:17 dzswdb1 kernel: o2net: no longer connected to node dzswdb2 (num 2) at 192.168.4.81:7777 

Nov 13 01:23:17 dzswdb1 kernel: (20343,73):dlm_send_proxy_ast_msg:456 ERROR: status = -112 

Nov 13 01:23:17 dzswdb1 kernel: (20343,73):dlm_flush_asts:584 ERROR: status = -112 

Nov 13 01:23:17 dzswdb1 kernel: (20343,73):dlm_send_proxy_ast_msg:456 ERROR: status = -107 

Nov 13 01:23:17 dzswdb1 kernel: (20343,73):dlm_flush_asts:584 ERROR: status = -107 

Nov 13 01:23:24 dzswdb1 kernel: NETDEV WATCHDOG: eth1: transmit timed out  

Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth1]: Unable to destroy the tx context, code 12 Error: Does Not Exist 

Nov 13 01:23:26 dzswdb1 kernel: bonding: bond1: link status definitely down for interface eth1, disabling it 

Nov 13 01:23:26 dzswdb1 kernel: bonding: bond1: now running without any active interface !

Nov 13 01:23:26 dzswdb1 kernel: nx_nic HP NC375i Integrated Quad Port Multifunction Gigabit Server Adapter Board S/N <FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>  <FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>^B^A Chip id 0x1 

Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth1]: Unable to create the tx context, code 6 Error: Invalid Args 

Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth1]: Error in setting hw resources: 6

Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth1]: Failed to Attach to device

Nov 13 01:23:30 dzswdb1 kernel: (22654,11):dlm_send_remote_convert_request:395 ERROR: status = -107

Nov 13 01:23:30 dzswdb1 kernel: (22654,11):dlm_wait_for_node_death:372 488938490B224513B7017AD113065CBF: waiting 5000ms for notification of death of node 2

通过查找关于红色字体的相关资料,发现这属于一个疑难杂症的问题,一开始还以为是硬件问题,但硬件工程师查了关于硬件的日志信息没有任何异常。所以决定加入两个参数试试,加入的参数及方法如下:  

方法:   

/boot/grub/grub.conf文件,在启动的核心kernel那行最后加上   acpi=off noapic    1)acpi=off禁止了一些电源高级管理功能,对你的应用程序没有影响。   

2)noapic改变了中断方式,对应用也没有影响

################################################

ACPI和APIC有什么关系? 

很多人问道了什么ACPI,什么是APIC,他们有没有关系?名字这么相近。下面给出网络上的朋友们给出的一些理解,具体的解释可以查看内核文档库的内核参数文件:/usr/share/doc/kernel-doc-2.6.18/Documentation/kernel-parameters.txt

1、ACPI就是Advanced Configuration and Power Interface的缩写,意思是“高级配置与电源接口”。这是英特尔、微软和东芝共同开发的一种电源管理标准。

ACPI可实现以下功能:   

1、用户可以使外设在指定时间开关;   

2、使用笔记本电脑的用户可以指定计算机在低电压的情况下进入低功耗状态,以保证重要的应用程序运行;   

3、操作系统可以在应用程序对时间要求不高的情况下降低时钟频率;

4、操作系统可以根据外设和主板的具体需求为它分配能源;

5、在无人使用计算机时可以使计算机进入休眠状态,但保证一些通信设备打开;

6、即插即用设备在插入时能够由ACPI来控制。  

不过,ACPI和其他的电源管理方式一样,要想享受到上面这些功能,必须要有软件和硬件的支持。在软件方面,Windows 98及其后续产品和Windows 2000都对ACPI给予了全面的支持;而Linux的内核目前对此支持得并不是太理想。硬件方面比较麻烦,除了要求主板、显卡和网卡等外设要支持ACPI外,还需要机箱电源的配合。电源在提供5伏电压给主板的同时,还必须使电流稳定在720毫安以上才可以  这样它才能够实现电脑的“睡眠”和“唤醒”。   

ACPI共有六种状态,分别是S0到S5,它们代表的含义分别是:   

S0�C实际上这就是我们平常的工作状态,所有设备全开,功耗一般会超过80W;   

S1�C也称为POS(Power on Suspend),这时除了通过CPU时钟控制器将CPU关闭之外,其他的部件仍然正常工作,这时的功耗一般在30W以下;(其实有些CPU降温软件就是利用这种工作原理)   

S2�C这时CPU处于停止运作状态,总线时钟也被关闭,但其余的设备仍然运转;   

S3�C这就是我们熟悉的STR(Suspend to RAM),这时的功耗不超过10W;   

S4�C也称为STD(Suspend to Disk),这时系统主电源关闭,但是硬盘仍然带电并可以被唤醒;   

S5�C这种状态是最干脆的,就是连电源在内的所有设备全部关闭,功耗为0。   

我们最常用到的是S3状态,即Suspend to RAM(挂起到内存)状态,简称STR。顾名思义,STR就是把系统进入STR前的工作状态数据都存放到内存中去。在STR状态下,电源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态,系统的耗电量极低。一旦我们按下Power按钮(主机电源开关),系统就被唤醒,马上从内存中读取数据并恢复到STR之前的工作状态。内存的读写速度极快,因此我们感到进入和离开STR状态所花费的时间不过是几秒钟而已;而S4状态,即 STD(挂起到硬盘)与STR的原理是完全一样的,只不过数据是保存在硬盘中。由于硬盘的读写速度比内存要慢得多,因此用起来也就没有STR那么快了。 STD的优点是只通过软件就能实现,比如Windows 2000就能在不支持STR的硬件上实现STD。

2、ACPI与APM比较

APM 1.0&1.1:由BIOS执行电源管理;

APM 1.2:操作系统定义电源管理时间,由BIOS负责执行;

ACPI:BIOS收集硬件信息,定义电源管理方案;由操作系统负责执行。

APM是一种软件解决方案,因此是与操作系统有关的, 而ACPI是工业标准,包括了软件和硬件方面的规范。

3、APIC (高级可编程中断控制器),它对计算机来讲有两个作用:

一是管理IRQ的分配,可以把传统的16个IRQ扩展到24个(传统的管理方式叫PIC),以适应更多的设备。

二是管理多CPU。由于Nf2主板并不支持多CPU,所以,APIC关闭直接的影响是减少了可用的IRQ。

不过,如果板卡不是非常多的话,关闭 APIC对系统是没有什么影响的。

要实现SMP功能,我们使用的CPU必须具备以下要求:

CPU内部必须内置APIC单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers�CAPICs)的使用。CPU通过彼此发送中断来完成它们之间的通信。通过给中断附加动作(actions),不同的CPU可以在某种程度上彼此进行控制。每个CPU有自己的APIC(成为那个CPU的本地APIC),并且还有一个I/O APIC来处理由I/O设备引起的中断,这个I/O APIC是安装在主板上的,但每个CPU上的APIC则不可或缺,否则将无法处理多CPU之间的中断协调。

APIC可能遇到的问题,很多这类问题可以通过BIOS更新来解决。

下面的是通过更改HAL类型来解决CPU实际运行频率与BIOS设定频率不符   

NF2的用户大约有10%的会出现CPU实际运行频率与BIOS设定频率不符的问题。我们称之为“频率不对”。   

这种现象带来的直接后果就是在测试3dmark或跑3D游戏的时候,会感觉不流畅,也称之为“顿”。   

一般在更改BIOS设置后、更新驱动后重启时,用测试软件如Aida32、MBM5等可以看到CPU的运行频率和你在BIOS里设置得不一样,而且差距很大。这个时候,用super pi测试CPU速度,会比平常花费时间长好几秒,用3dmark跑测试,会比平常低几百分甚至上千分。在3dmark中看到的CPU频率,也与BIOS设定不符合。  

如果出现这种情况,则属于我们所讨论的“频率不对”的问题。  

不过,不是所有的3D游戏“顿”都是这个原因。判断的方法是:如果你只有个别游戏“顿”,或者用上述软件测试频率正确,就不是此问题。   

如果判断确实属此问题,解决的方法也很简单,经过网友讨论,只要关闭APIC功能即可。(注意,是APIC,不是ACPI)。   

有一些服务器(比如IBM的,HP的),安装LINUX时,会给出内核的错误,导致无法安装,这个时候可以在安装的时候输入   

acpi=off noapic   

应该是安装上的。   

你可能感兴趣的:(error,服务器,status,IP地址,connected)