私は安定したマシンを構築することに大いに悩まされています-クラッシュ、再起動、おかしな振る舞いなどが絶対に嫌いです-したがって、エラー訂正、別名ECC RAMは、大きな問題を解決するようです:メモリエラー。
しかし、それは本当に機能しますか?測定可能な利点はありますか?クラッシュやその他の動作が少なくなりますか?
コストは別として、新しいPCビルドにECCメモリを使用してみませんか?なぜECC機能はサーバー/ワークステーションクラスのマシンで主に利用可能でサポートされているのに、消費者向けのマザーボードではサポートされていないのですか?
サーバーでECCRAMを使用して数年になります。 「1日12〜16時間以上使用している」など、マシンを頻繁に使用している場合、ECCは非常に優れています。私がECCなしで構築した小さなホワイトボックスサーバーは、遅かれ早かれ、再起動を必要とする「問題」を発生させましたが、ECCマシンには決してこれらがありませんでした。
だから私の答えは:あなたがあなたのコンピュータをたくさん使うなら、おそらくそうです。コンピューターを24時間年中無休で使用する場合は、必需品です。
そこにECCをサポートするいくつかのマザーボードがあります。それらは通常、物事の「より高い」端にありますが、少しの調査で、さまざまなメーカーからそれらを見つけることができます。他の唯一の考慮事項は、BIOSでECCサポートを有効にすることを忘れないことです。
Googleはこの問題について揺れ動いている。 これが現代のシステムに実際にどのように影響するかについては http://blogs.zdnet.com/storage/?p=638 を参照してください。 。
サーバーがECCを必要とする場合にのみECCを使用する価値があると思います。 ウィキペディア :
コンピュータシステムのエラー検出と訂正は時代遅れになっているようです。シーモア・クレイは、なぜこれをCDC 6600から除外したのかと尋ねられたとき、「パリティは農民のためである」と有名に言いました。彼はCDC 7600にパリティを含め、「多くの農民がコンピューターを購入することを知りました」と言われています。
ギガバイトあたり月に1ビットエラーというあいまいな主張を除いて、インターネット上で決定的な情報源を見つけることはできません。これは明らかにばかげています。これがリモートtrueの場合、サーバーは世界中で左右にクラッシュします。
MetaFilterスレッド からのいくつかのハイライト:実際のサーバー管理者から:
ECCはすばらしいものだと思いますが、ECCの有無にかかわらずサーバーを使用したことがあり、その存在または不在によって、いずれにしても何も実行されたことはありません。
ECC RAMの目的は理解していますが、要点は理解していません。つまり、宇宙線のビットフリッピングに起因する問題に気づいたことはありません。複数年の稼働時間を持つパーソナルコンピューティング/コンパイルサーバーでも。ビットが反転しなかったとは言えませんが、確かに問題ではありませんでした。
私の経験では、数千台のマシンのファームをあちこちで実行していると、ECCで修正可能な問題が発生するよりも、Ext3が静かにあなたのいたるところに吐き出す可能性が高くなります。
個人的には、ECCは少しカーゴカルトだと思いますが、コストプレミアムが高すぎない限り、大型の頑丈なサーバーでは妥当な保険契約です。
重要なシステムについては検討しました。 1つの問題は、メモリの整合性チェックを実行するために使用されるプログラム自体がメモリエラーを起こしやすい場合、メモリの整合性をチェックするためにソフトウェアでエラー検出をどのように行うかということです。基本的にはできません。障害モードの分析/障害の軽減が困難になるため、ECCは軽減メカニズムです。
これは、問題が発生した場合に実際に非難できるケースの1つです 宇宙線 ;)
「ミッションクリティカル」なアプリケーションにはECCRAMを検討します。サーバーエラーによってかなりの金額が失われる(または人を殺すなど)場合は、ECCRAMを使用してください。基本的に、ECC RAMのコストと、エラーが発生した場合に失う可能性のあるコストを比較検討します。
ただし、何を決定する場合でも、 MemTest86 + を一晩(またはアドレス空間全体で数回パスするのに十分な時間)実行することをお勧めします。そして、(文字通り)熱を上げることができれば、システムが熱くなっているときにRAMがどのように動作するかについてのアイデアが得られます。
まったく新しいRAM MemTestでエラーが発生しました。また、MemTestが検出した「良好な」RAM開発エラーもありました。これは優れたツールであり、私が新しいシステムで最初に実行するもの。