您好,登錄后才能下訂單哦!
昨天接到一個客戶的電話,說是有一臺服務器的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: eth2: transmit timed out
Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth2]: 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 eth2, 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[eth2]: Unable to create the tx context, code 6 Error: Invalid Args
Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth2]: Error in setting hw resources: 6
Nov 13 01:23:26 dzswdb1 kernel: nx_nic[eth2]: 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–實際上這就是我們平常的工作狀態,所有設備全開,功耗一般會超過80W;
S1–也稱為POS(Power on Suspend),這時除了通過CPU時鐘控制器將CPU關閉之外,其他的部件仍然正常工作,這時的功耗一般在30W以下;(其實有些CPU降溫軟件就是利用這種工作原理)
S2–這時CPU處于停止運作狀態,總線時鐘也被關閉,但其余的設備仍然運轉;
S3–這就是我們熟悉的STR(Suspend to RAM),這時的功耗不超過10W;
S4–也稱為STD(Suspend to Disk),這時系統主電源關閉,但是硬盤仍然帶電并可以被喚醒;
S5–這種狀態是最干脆的,就是連電源在內的所有設備全部關閉,功耗為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–APICs)的使用。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
應該是安裝上的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。