RAMがECCモードで実行されているかどうかを確認するにはどうすればよいですか?


11

プロセッサを交換してからこの投稿を更新しましたが、私の質問の核心(そして残念ながら結果も)は同じです。


最初のFreeNASボックスを構築し、重要なデータを保存したいので、ECC RAMを使用したいと思いました。私は予算が足りないので、ECC RAMをサポートする最も手頃なソリューションを求めていました。

調査したところ、マザーボード、メモリ、ECCをサポートするCPUが必要であることがわかりました。私が選んだマザーボードは、C232チップセット、DDR4、LGA1151ソケットを備えた「ギガバイトX150M-Pro ECC」です。

また、モデル番号「KVR21E15S8K2 / 8」のキングストン製の2枚のDIMMのキットも購入しました(スペックシート)。ギガバイトはテスト済みのメモリモジュールのリストを公開し、私のモジュールは動作中のECCでサポートされているようです(サポートされているモジュールのリスト)。

RAMラベル

予算が足りないので、ECCをサポートする手頃な価格のSkylake CPUが必要でした。Intelによれば、Celeron G3900はECCをサポートしているので、ECCを使用しました。

コンピュータを構築した後、システムが本当にECCメモリで実行されており、マザーボードのBIOSに入っていることを確認したいと思いました。さまざまなインターネットサイトから、一部のマザーボードにECCが機能しているかどうかを通知する特別なセクションがあることを発見しましたが、私のマザーボードにはそれがないようです。すべてのメニューを確認したところ、類似のセクションが見つかりませんでした。

さらに調査を行ったところ、UnixとLinuxのスタック交換に関する投稿が見つかりましたが、私の問題は解決しませんでした。memtest86+「ECC」という値すらわからない最新のものを試してみました。ピュージェットのシステムで使用されていた「ECC:オフ」を示す古い4.20バージョンを試しました。ただし、前述の投稿を読んだ後、それが真実を物語っているとは思えません(たぶん、そのため機能が削除されましたか?)。どちらのバージョンも、DIMMの正しい速度と遅延を読み取れなかったため、への疑問が深まりmemtest86+ます。

memtest86 +スクリーンショット

もう一つの一般的な方法は、ECCが動作している場合、発行することだった、調べるにはdmidecode -t memory、コマンドをし、読み出しTotal WidthData Width。私の結果は以下の通りであった128 Bits64 Bits、それぞれ。出力の一部には、キーと値のペアがであるメモリ配列に関する詳細が表示されましたError Correction Type: Single-bit ECC

を期待し72 bitsていたTotal Widthので、デュアルチャネルに関連している可能性があると考え、メモリモジュールを2つの隣接するスロットに移動しました。これにより、デュアルチャネルが使用できなくなりましたが、結果は同じでした。これはの完全な出力ですdmidecode -t memory

私はピュージェットシステムが公開した興味深いCプログラムを試してみましたが、結果はであり0、ECCサポートがないことを示しています。

今、私はIntel自身のウェブサイト上のデータが正しいことと私のCPUが実際にECCをサポートしていないことに疑問を感じ始めています。メモリとマザーボードの両方に「ECC」という特別なブランドが付いているので、それらを除外できます。

BIOSバージョンがECCを有効にするために更新が必要(現在は何もない)か、ECCが実際に既に機能していて、確認できなかった可能性はありますか?または、ECCメモリを実行したいのにIntelのWebサイトが間違っている、または誤解を招く場合、CPUの選択は間違っていますか?

私のCPUが間違った選択であることが判明した場合、「予算ECC CPU」の次の最良の選択は何でしょうか?

更新:私のシステムがECCを有効にして実行されている可能性があり、ツールが奇妙なデータを報告するだけであるという新しい兆候を見ましたdmidecode。FreeNASフォーラムでは、ユーザーDusanがサーバーグレードのハードウェア(SuperMicro MB、Xeon CPU、Kingston DIMM)を使用しており、と同様の出力が得られ128 Bitsます。しかし、彼はそれが実際に機能するかどうか、自分自身はわからないことを書いた。

更新2: yagmoth555 がこの質問への回答で述べたように、私のマザーボードはXeonプロセッサを備えたECCのみをサポートしているようですが、メモは以前のマニュアルからコピーされたものだと思いました。Xeonプロセッサを調べる必要があることを意味していると思います。:-/


更新3: Xeon E3-1220v5を購入しました。もちろん、ECCをサポートしており、マニュアルの要件を満たす必要があります。すべてのテストを再度実行してECC機能を確認しましたが、結果は基本的に同じです。

ecc_checkおよびdmidecode

Puget Systemsのコメントから、このecc_check.cプログラムはXeonおよびCore i7プロセッサーでは動作しないようです。:-/

memtest86+今回はさらにチェックアウトしましたが、間違った速度とタイミングだけでなく、インストールされているDDR4の代わりにDDR3も報告するため、DDR4またはC232チップセットをまったくサポートしていないことは間違いありません。ただし、プロセッサは問題なく検出されましたが、の両方のバージョンで同じ最終結果が得られましたmemtest86+

memtest86 + v5.01

バージョン4.20でもプロセッサーが正しく検出されません。

memtest86 + v4.20

他にどのようにECCをテストできるかについてのアイデアは、非常に高く評価されています。


まあ、もしあなたのマシンがECCをサポートしていなければ、それは開始しません:)
孤児たち

1
@Orphansマザーボードを見つける前に、Z170などの他のチップセットで「ECCサポート」を主張する安価なものが見られました。これは、ECCメモリでボードが実行できる(クラッシュしない)が、実際にはそれを使用しないことを意味します。だから私のケースがそのようなものかどうか疑問に思っていますか?
comfreak 2016年

ECCの場合、通常はPOSTセクションに表示されます。起動中にEscキーを押して、Boit画面を表示できますか?
yagmoth555

memtest86.comからのmemtestも試してください
シトリン

@comfreakうーん、あなたは正しいです。
孤児、

回答:


4

今日、私はそこにあることが分かった商用版memtest86(なし+PassMarkのから)は申し出ありがたいECCチェックを含め、あまりにも無料版という。

さらに、DDR4およびのその他すべての機能もサポートしていますmemtest86+

私の結果はECCサポートにポジティブであると思われるため、などの「従来の」ツールで同じ結果を得たいと思っていたとしても、これを完了と呼びますdmidecode

memtest86の結果


後で誰かがこの投稿に遭遇し、さらに検証とテストが必要な場合は、ECC機能を実際にテストするためのECCエラー挿入をサポートする有料バージョンも提供しています。


3

編集:マザーボードのマニュアルからの悪い新しい...:

ここに画像の説明を入力してください


BSD / linuxを実行しているようです。OS内で実行してください。(FreeNASで利用可能)

dmidecode -t 17

次のような出力が表示されます。

dmidecode 2.12 SMBIOS 2.5 present.

Handle 0x1100, DMI type 17, 28 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: 1 Locator: DIMM1 Bank Locator: Not Specified Type: DDR2 Type Detail: Synchronous Speed: 667 MHz Manufacturer: AD00000000000000 Serial Number: 00002062 Asset Tag: 010839 Part Number: HYMP125P72CP8-Y5 Rank: 2

総幅:72ビット、あなたが探している部分です。

Windowsシステムで実行できます

wmic MEMORYCHIP get DataWidth,TotalWidth

// ECCメモリDataWidth TotalWidth 64 72

// ECC以外のメモリDataWidth TotalWidth 64 64

FreeBSDとWindowsへの回答はそこから取っ


これは基本的に私がすでに試したものでdmidecode -t memoryあり、私の結果は128ビットTotalと64ビットData
でした

@comfreak dmidecode -t 17 return what?
yagmoth555

私は基本的に次のような同じ出力を取得しますdmidecode -t memoryslexy.org/view/s2JimvAzl6
comfreak

@comfreakよく、128は私には意味がありません。通常、それは64非eccまたはECCの64b + 8b(72)です(ミラー?? 64 + 64?)。しかし、「dmidecode total width 128」リストを検索すると、多くのfreenasポストが表示されます。多くの場合、。/ ecc_check.py pythonスクリプトでECCを検出しようとするようです
yagmoth555

私の仮定は、それがデュアルチャネルに関連している可能性があるということでしたが、2つのモジュールを2つの別々のチャネルに配置したときにも同じ結果が得られました。つまり、デュアルチャネルは機能しないはずです。
comfreak 2016年

3

Ryzen 7プロセッサーを使用した場合、上記のツールのいずれも私にとっては機能しませんでした。ただし、十分に最近のLinuxカーネルでは、edac-utils、edac-ctl、edac-utilのツールは、ECCステータスや、修正されたエラーの数などを読み取ることができます。カーネルログには、dmesgに「EDAC」が含まれる行も含まれます。これにより、いくつかの情報も提供されます。この機能は、RAMをオーバークロックし、エラーが報告されていることを確認することでさらにテストできます(十分に高くなっている場合)。これは、実際に機能することを確認できる程度の証拠です。ただし、これらのツールがエラーを報告したり機能しない場合でも、ECCステータス情報の読み取りがサポートされていないことを意味するだけであり、ECCが機能していないことを証明する100%信頼できる方法はないようです...


1
Passmarks memtest86を試しましたか?(私が私の回答で述べたもの)
comfreak

出力は異なる場合がありますが、dmesgでEDAC情報を確認するには、実行できますdmesg | grep EDAC(root権限で実行する必要がある場合があります)。たとえば、ECCメモリがインストールされ、BIOSで有効になっているRyzenベースのシステムでは(該当する場合)、次のような行が表示される可能性がありますamd64: Node 0: DRAM ECC enabled.
Joe

0

サーバー以外のマザーボードおよびチップセットの場合、特定のAMDマザーボード(ASRockなど)およびAMDチップセットのみがECCを提供します。

Intelの場合、サーバーXeonチップセットでのみECCを使用できるようにします。IntelはデスクトップチップセットでECCを無効にします。


それは本当かもしれませんが、ここで尋ねられた実際の質問には答えません。
comfreak 2018

彼がxeon以外のIntelチップを実行しているため、これはopの質問に適用されます。答えは彼がチェックできないことです。
d

たとえば、C232チップセットは「デスクトップチップセット」であり、ECCをサポートしているため、回答の最後の文は正しくありません。それとは別に、質問がサポートされているかどうかわからない場合など、確認方法のように、質問はより一般的です。
comfreak 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.