GNU/Linux >> Linux の 問題 >  >> Linux

Linux で ECC エラーの通知を受け取るにはどうすればよいですか?

解決策 1:

mcelog メモリ コントローラを監視し、メモリ エラー イベントを syslog に報告します。一部の構成では、不良メモリ ページをオフラインにすることができます。もちろん、これは、マシン チェックの例外やその他のさまざまなハードウェア エラーを監視するための通常の使用に加えて使用されます。

ほとんどの Linux ディストリビューションには、デーモンとして実行するように設定されたサービスがあります。 EL 6 の場合:

chkconfig mcelog on
service mcelog start

解決策 2:

Linux カーネルは、一部のチップセットのエラー検出および訂正 (EDAC) 機能をサポートしています。 ECC がサポートされているシステムでは、sysfs を介してメモリ コントローラのステータスにアクセスできます:

/sys/devices/system/edac/mc

その場所の下のディレクトリ ツリーは、ハードウェアに対応している必要があります。例:

/sys/devices/system/edac/mc/mc0/csrow2/power
/sys/devices/system/edac/mc/mc0/csrow0/power
/sys/devices/system/edac/mc/mc0/dimm2/power
/sys/devices/system/edac/mc/mc0/dimm0/power
/sys/devices/system/edac/mc/mc1/power
...

ハードウェアによっては、適切な edac ドライバーを明示的にロードする必要がある場合があります。参照:

find /lib/modules/$(uname -r) -name '*edac*'

edac-utils パッケージは、コマンド ライン フロントエンドとそのデータにアクセスするためのライブラリを提供します。例:

edac-util -rfull          
mc0:csrow0:mc#0memory#0:CE:0
mc0:csrow2:mc#0memory#2:CE:0
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0

eac-util を定期的に呼び出すある種の cron ジョブをセットアップできます。 結果を監視システムにフィードし、そこでいくつかの通知を構成できます。

それに加えて、 mcelog を実行しています 一般的には良い考えです。システムによって異なりますが、修正不可能/修正可能な ECC エラーは、マシン チェック例外 (MCE) としても報告される可能性があります。つまり、高温による CPU スロットリングが短時間でも MCE として報告されます。

解決策 3:

これは、サーバー ハードウェアによって異なります。ホワイトボックスまたは Supermicro システムは、Dell、HP、または IBM とは異なる方法でこれを処理します...

ハイエンド サーバーの付加価値機能の 1 つは、一定レベルのハードウェアと OS の統合があることです。より優れたサーバーは、管理エージェントおよび/または帯域外管理ソリューション (ILO、DRAC、IPMI) の一部として探しているものを報告します。

ハードウェア プラットフォームにネイティブなツールを使用する必要があります。

Linux および HP 管理エージェントを実行している HP ProLiant サーバーからの抜粋:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

そして

Trap-ID=6052
Advanced ECC Memory  Engaged

またはより深刻な

Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.

最悪の場合... RAM の不良によりサーバーがクラッシュするまで 6 日間エラーを無視する

0004 Repaired       22:21  12/01/2008 22:21  12/01/2008 0001
LOG: Corrected Memory Error threshold exceeded (Slot 1, Memory Module 1)

0007 Repaired       02:58  12/07/2008 02:58  12/07/2008 0001
LOG: POST Error: 201-Memory Error Single-bit error occured during 
memory initialization, 
Board 1, DIMM 1. Bank containing DIMM(s) has been disabled.

0008 Repaired       19:31  12/08/2009 19:31  12/08/2009 0001
LOG: ASR Detected by System ROM

これらはログに記録され、さらに SNMP トラップと電子メールが送信されました。

一般に、カーネル リング バッファーに Machine Check Exceptions が表示されるため、dmesg を確認できます。 または mcelog を実行します。 IPMI なしの Supermicro ギアでの私の経験では、すべてを捉えることはできませんでした。それでも、RAM エラーが亀裂をすり抜けて機能停止を引き起こすことがありました。残念ながら、これはシステム展開前の時代遅れの RAM バーンイン ポリシーにつながりました。

解決策 4:

rasdaemon パッケージは edac-tools の代替として作成されました 、そして新しいカーネルは edac-tools さえサポートしていません または mcelog .

EDAC Linux カーネル ドライバーの更新により、ユーザー空間でのメモリ エラー カウンターの管理方法が変更されたため、edac-tools そして mcelog


Linux
  1. Linuxでメモリキャッシュをクリアする方法

  2. Linuxで共有メモリセグメントに接続されているプロセスを一覧表示する方法は?

  3. Linuxでユーザーのメモリ使用量を見つける方法

  1. cpを取得する理由:Linuxでのディレクトリエラーの省略と解決方法

  2. Linux はメモリをスクラブできますか?

  3. bashからネットマスクを取得するには?

  1. Linuxでディレクトリサイズを取得する方法

  2. IP (Linux) からホスト名を取得するには?

  3. シングルビットメモリエラーは Linux にどのように影響しますか?