CentOS與Broadcom 5709兼容性問題

CentOS與Broadcom 5709兼容性問題導致業務網絡中斷的問題


   
    一、現象描述
   
    開發那邊反應有一臺機器掛了(ping、ssh都不行),我通過遠程管理口看到這臺機器b並沒有掛,我登錄進去,ping任何IP都ping不通,系統日誌也沒有報錯,最後我重啓了網卡,機器恢復正常。
   
    二、原因分析
   
    服務器使用的開源的CentOS操作系統對網卡存在兼容性問題,現場使用的操作系統內核是:
   
    Linux version 2.6.18-164.el5
   
    CentOS是RedHatOS的免費編譯版本,和RedHatOS基本相同。經過RedHat和網卡廠商的多次確認,RedHat OS在對Broadcom 5709網卡的驅動bnx2支持上存在一個兼容性bug----在某種特殊場合當業務數據流量過大時(即網口負荷過大時),小概率會導致網卡不通導致業務 中斷,可以參見RedHat對於該問題的描述:
   
    通過該圖片描述可以看到,在kernel-2.6.18-194.3.1.el 版本以下的Redhat以及CentOS 操作系統,使用Broadcom 5709網卡芯片的服務器上都會存在此問題。
   
    MSI(Message Signalled Interrupts)是一種PCI設備使用的中斷機制,多用於網卡且不適用多核;MSI-X是MSI的提升版,開啓網卡驅動的MSI-X功能可以提升網 絡性能,但是會對OS增加負荷,OS若是無法適應網卡運行狀況,無法處理數據(尤其是異常大的流量),就會出現異常狀況,關閉MSI-X功能之後網卡會以 網卡的普通性能工作,就不會使OS負荷過重,從而避免發生異常。
   
    三、故障解決
   
    禁用  Broadcom 5709網卡驅動bnx2的MSI功能(操作步驟如下)。
   
    (1)登錄服務器操作系統打開終端,輸入“vi /etc/modprobe.conf”進入文本編輯模式。
   
    (2)在文本結尾處添加一行“options bnx2 disable_msi=1”(如下圖所示),保存退出並重啓系統。
   
    (3)系統重啓後在終端輸入“grep –i eth /proc/interrupts”,通過返回結果查看MSI是否已被禁掉(MSI禁用後將不會顯示PCI-MSI-X的字樣),如圖所示。
   
    未禁用MSI
   
    已禁用MSI

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章