
768 GiB ECC DDR4メモリを搭載したマシンがあります。モジュールの1つが不安定で交換する必要があります。dmesg
次の項目でいっぱいです。
[Mar25 08:07] mce: [Hardware Error]: Machine check events logged
[ +0.000014] EDAC skx MC1: HANDLING MCE MEMORY ERROR
[ +0.000003] EDAC skx MC1: CPU 0: Machine Check Event: 0x0 Bank 8: 0xdc00008001010092
[ +0.000002] EDAC skx MC1: TSC 0x116da2b2e75b2
[ +0.000001] EDAC skx MC1: ADDR 0x2e9282d900
[ +0.000001] EDAC skx MC1: MISC 0x200801c091001086
[ +0.000004] EDAC skx MC1: PROCESSOR 0:0x50657 TIME 1616659657 SOCKET 0 APIC 0x0
[ +0.000013] EDAC MC1: 2 CE memory read error on CPU_SrcID#0_MC#1_Chan#2_DIMM#0 (channel:2 slot:0 page:0x2e9282d offset:0x900 grain:32 syndrome:0x0 - OVERFLOW err_code:0x0101:0x0092 socket:0 imc:1 rank:1 bg:2 ba:2 row:0xfc0b col:0x40)
そして、修正可能な回復されたECCエラーがあります。
$ edac-util --report=simple
mc0: Correctable errors: 0
mc0: Uncorrectable errors: 0
mc1: Correctable errors: 270
mc1: Uncorrectable errors: 0
mc2: Correctable errors: 0
mc2: Uncorrectable errors: 0
mc3: Correctable errors: 0
mc3: Uncorrectable errors: 0
Total CE: 270
Total UE: 0
dmidecode
システムとメモリに関する多くの素晴らしい情報を示しましたが、両者の関係を理解していない。(論理)dmesg
出力に表示されるアドレスとdmidecode
(実アドレス)。
特に、カーネルがアドレスに問題があることを知らせるように見えますが、0x289282d900
物理アドレスはそれより低く制限されるため、これは論理アドレスでなければなりません。私のシステムの最高のメモリマッピング物理アドレスは次のとおりです。
Handle 0x004F, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x09000000000
Ending Address: 0x0BFFFFFFFFF
Range Size: 192 GB
Physical Array Handle: 0x004E
Partition Width: 3
もう一度申し上げますが、channel:2 slot:0
交換する必要があるアイテムの範囲を絞り込むのに大きな助けになりましたが、dmidecode
リストにはありません。どのチャンネルはまったくありませんが、フル出力するマザーボードの(ラベル付き)スロットに対応する物理アドレス範囲の有用な画像:
$ sudo dmidecode -t memory|grep -i channel
$
繰り返しますが、古いトリックgrep -i 'System RAM' /proc/iomem
も機能しません。
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
面倒なことに、私のマザーボードのドキュメントには実際に配置方法(numa
実際にノード!)が詳細に記載されていません。
どの物理メモリースティックに問題があるかをリモートで確認できますか?
答え1
この行だけで済みます。
[ +0.000013] EDAC MC1: 2 CE memory read error on CPU_SrcID#0_MC#1_Chan#2_DIMM#0 (channel:2 slot:0
この記事を読むには:
CPU_SrcID#0=(CPU0)MC#1=(Memory Controller 1
投稿したリストedac-util
は次のとおりです。
0-3)Chan#2_DIMM#0=(Would be C0 DIMM).
メモリチャネルは0(A0 / A1)、1(B0 / B1)、2(C0 / C1)などから始める必要があります。 DIMM0はこのチャンネルのデフォルトスロットになります。
同じ情報が見つかるはずです。
edac-util -v
UE/CE を報告します。
答え2
メモリバンクのインターリービングとマッピングにより、特定のタスクにどのモジュールが使用されるかを見つけるのは困難です。
モジュールの半分を取り除き、問題が持続するかどうかを確認するにはどうですか?犯人を見つけるまでずっと二つに分けます。検索速度を上げるには(==boot into)を実行してください。記憶力テスト 86+テスト中にエラーが表示されるように強制します。多くのLinuxインストールDVD(Ubuntuなど)には、簡単に起動できるmemtest86 +イメージがあります。