web-dev-qa-db-ja.com

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

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


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

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

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

RAM label

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

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

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

memtest86+ screenshot

ECCが機能しているかどうかを確認するもう1つの一般的な方法は、dmidecode -t memoryコマンドを発行してTotal WidthおよびData Widthを読み取ることでした。結果はそれぞれ128 Bits64 Bitsでした。出力の一部には、Error Correction Type: Single-bit ECCというキーと値のペアを持つメモリ配列に関する詳細が表示されました。

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

Pugetシステムが公開した興味深い C-program も試してみましたが、結果は0であり、ECCサポートがないことを示しています。

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

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

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

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

UPDATE 2:yagmoth555が 彼の回答 でこの質問に言及しているように、私のマザーボードはXeonプロセッサでのECCしかサポートしていないようです。私はそのメモはコピーされた以前のマニュアルからの遺物であると思ったが。 Xeonプロセッサを調べる必要があることを意味していると思います。:-/


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

ecc_check and dmidecode

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

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

memtest86+ v5.01

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

memtest86+ v4.20

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

11
comfreak

今日、PassMarkからmemtest86の-​​ 商用バージョン+なし)があり、ありがたいことに、ECCチェックが含まれている無料バージョンも提供されていることがわかりました。

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

私の結果はECCサポートにプラスの影響を与えているようです。dmidecodeのような「従来の」ツールで同じ結果を得たいと思っていたとしても、これを完了と呼びます。

memtest86 result


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

4
comfreak

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

enter image description here


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

Total Width:72 bitsは、探している部分です。

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

wmic MEMORYCHIP get DataWidth,TotalWidth

// ECCメモリDataWidth TotalWidth 64 72

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

FreeBSDとWindowsの回答は there から取得しました

3
yagmoth555

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

3
user415177

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

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

0
d hee