パスワードを忘れた? アカウント作成
79250 story

メモリの不具合、どう取り組む? 122

ストーリー by hylom
ECC付きメモリが安くなれば…… 部門より

あるAnonymous Coward 曰く、

本家「Reliablity of Computer Memory?」より。

512MBのメモリを載せていた頃は宇宙線がエラーを引き起こすとか、RAMの容量が大きくなるほどエラーも増えるなどと言われていた。いまや家庭用のPCでさえ6GBや8GBのメモリを積んでいるが、ECCメモリを載せている人などいない。

4GBのメモリを積んだ自分のPCでは64ビット版のWindows Vistaを動かしていたが、最近同じパターンでブルースクリーンが起きるという状況が発生した。memtest86を走らせたところ毎回エラーが検出された。しかしこのPCで64ビットのUbuntuを走らせたところ、ロード100%でメモリも全て使われているという状態だったが何日も問題なく稼動していた。自分が疑問に思っていることは2点。

  1. memtest86でメモリモジュールやマザーボードやCPUの不具合と出た場合、この結果は信用に値するだろうか?
  2. 来年メモリ16GBを搭載したPCをメールチェックに使おうと思うのだが、ECCメモリを積むべきだろうか?

本家ではWindowsとUbuntuではメモリの使い方が異なるため、memtest86の結果の通りRAMに不具合があってもそこ使われなかったとすれば稼動し続けることも可能との意見もあるが、メモリテストで問題を突き止めることの難しさも語られている。memtest86以外ではprime95を薦める声なども寄せられている模様。

/.J諸兄方はどのようにメモリの不具合にどのように取り組んでいらっしゃるだろうか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ECC付を買うべし (スコア:4, おもしろおかしい)

    by Anonymous Coward on 2009年04月02日 15時06分 (#1542462)
    選択肢が限られてしまうが、それでも、ECC有りの構成を選ぶべき。

    ECC無しのメモリを使うというのは、コンドームなしのセックスと同じです。
    無防備すぎます。
  • by superfox (31908) on 2009年04月02日 15時30分 (#1542477)

    ざっとコードを見ましたが、memtest86 は割と緩いテストなのでそれにも関わらず異常が検出されるならアウトでしょう。

    仮想記憶をサポートする OS のユーザプロセスでは難しいかもしれませんが、本来なら目的のアドレス線が機能しているか/隣り合ったアドレス線に影響していないか位は見ないと駄目じゃないかな(0x0020xxxx に書いたときに、0x0000xxxx、0x0010xxxx、0x0030xxxx、0x0040xxxx、0x0060xxxx 辺りに影響出ていないことの確認とか)。

    # 新しいハードウェアの開発とかやってるとママあるんだよね…

  • by Anonymous Coward on 2009年04月02日 15時36分 (#1542483)

    時々計算を間違える どじでおっちょこちょいな計算機に
    いろいろ大事なデータを任せられるならあれですが、
    複数のテストで一つでもエラーが見つかったら交換でも
    なんでもして原因追求するべきでしょう。

    メモリは、エラーを起こす場所が何に使われるかわかりません。
    OS が落ちる症状になることはむしろ歓迎しなければなりません。

    昔ストレージデバイスの開発をやっていたころに、ファイルコピーを
    してはコンペアとやっていたら、時々コンペアエラーが見られる
    ようになって、デバイスのバグか!と いろいろ追求した結果、
    その PC のメモリのビット化けだった、ということがあります。
      (当然ただの 1bit /128MB)
        (ファイルは disk -> memory -> disk とコピーされるため)
          (化け場所はいわゆるヒープ領域(?)だったため OS は全然平気)

    その PC はそんなに不安定という感じではありませんでしたが、
    丹念に調べたところ、その PC で作成したファイルにビット化けの
    影響が含まれているものが少なからず見つかりました。
        (別のマスターファイルと比較したり、zip ファイルの CRC チェックしたり)

    請求書やラブレターが文字化けしないうちに即 対処すべきです。

    # かく言う私はコンペアおやじで、似たようなことを
    # これまで三度ほど経験しているのは また別の話。

  • 少なくとも (スコア:3, すばらしい洞察)

    by satomi (9415) on 2009年04月02日 14時21分 (#1542416)
    >1.memtest86でメモリモジュールやマザーボードやCPUの不具合と
    >出た場合、この結果は信用に値するだろうか?

    >しかしこのPCで64ビットのUbuntuを走らせたところ、ロード100%で
    >メモリも全て使われているという状態だったが何日も問題なく稼動していた。
    =「だから安全」
    と考えるよりは信用に値すると思われます。

    #環境が違えばR/Wの粒度、頻度、いくらでも違いがあるし。
  • by jordan_beth (10928) on 2009年04月02日 14時41分 (#1542433) 日記

    >1. memtest86でメモリモジュールやマザーボードやCPUの不具合と出た場合、この結果は信用に値するだろうか?
    もし「事」が起こっても、「しょうがねーな」で済むんだったら、いいんじゃないでしょうか、日常使ってて気になる不具合ないんだったら。
    「事」が起こったときに取り返しがつかない、というのであれば、そんなメモリ(or その他機器)を使おうなんて思えませんね。少しでも気にかかることがあれば即取り替えます。

    >2. 来年メモリ16GBを搭載したPCをメールチェックに使おうと思うのだが、ECCメモリを積むべきだろうか?
    プライベート用途の PC にそんな膨大なメモリ空間が必要だろうか。。。まぁ、「メールチェックにも」かな? 2GB のマシンで Maya も Photoshop もウェブもメールもやってる身からすればうらやましい限り。。。

    --
    ん? 俺、今何か言った?
  • by quickcopper (17781) on 2009年04月02日 17時19分 (#1542566)
    という話が以前ありましたが、状況はぜんぜん変わりませんでしたね。
    http://www.itmedia.co.jp/news/articles/0602/13/news037.html [itmedia.co.jp]
  • by Anonymous Coward on 2009年04月02日 18時48分 (#1542639)

    電圧やノイズマージンの不足、物理的な故障などのハードウェアに起因するエラーはmemtestで発見できる可能性がありますが、それらが全てmemtestで発見できるわけではありません。ですのでmemtestを通ったから安心はできませんが、memtestに通らないのは論外なので、即座に交換すべきです。

    一方、宇宙線や部材からの放射線に起因するソフトエラーは、瑕疵のないハードウェアであっても一定の確率で確実に起こりうるもので、防ぎようがなく、memtestで発見できるわけでもなく、また発生したからといってメモリモジュールを交換しても無意味です。これに対処するには、最低でもECCメモリ、より強力な2ビット以上のエラーを訂正可能なメモリ、あるいはメモリのミラーリングなどの仕組みが必要となります。

    ではソフトエラーがどの程度の確率で発生するのかといわれると、最近のメモリでの厳密なデータは見たことがありませんが、経験では8GB搭載した1000台のサーバーで年に1~4回程度です。

    こうしたエラーの結果、OSが落ちてしまうなら問題は少ないのですが、ユーザーデータが化け、それがそのまま不揮発メディアに保存されてしまうと、エラーが半永久的に解消されずに残ることになります。近年のメモリ使用量の肥大化は、プログラムコードよりもユーザーデータのほうに比重がありますから、ますますこうしたケースは増えていくでしょう。

  • by Anonymous Coward on 2009年04月02日 19時26分 (#1542654)
    それよりもPCケース開けて、ホコリをきちんととった方が良いんじゃないですかね?
  • by RainCat (37734) on 2009年04月02日 20時11分 (#1542682) 日記

    うろおぼえなのですが、VMware ESX のマニュアルにおいて、
    「構築期間に2日程度の余裕がある場合、メモリテストをするのがベストプラクティス」
    という記述があったのを思い出しました。

    洋の東西を問わず、メモリは潜在的な障害要素と考えられているようで。

  • 昔 Linux の VMWare サーバで NetBSD の pkgsrc をコンパイルして
    いたところ、仮想マシンの /etc/passwd と思われるユーザ名に混じり
    コンパイル エラーが発生し、コンパイルに失敗するという現象が発生
    しました。

    原因を調査したところ、結局メモリエラーであることが判明し、当該の
    メモリ モジュールを取り外して無事動作するようになったわけですが、
    以下のような興味深い挙動がみられました。

        1. memtest86 では検出できるが memtest86+ では検出できない
        2. 別のマシンにつけたらエラーは発生しない

    そこで判ったことは以下の通り。

        a) ソフトで拾えないメモリエラーもある。
        b) ソフトによって拾えないメモリ エラーもある。
        c) メモリの相性の問題はビット単位で発生する。
                単に認識しただけでは正常に動作しているとはいえない。

    参考になりましたでしょうか。

  • by blackdrug (13208) on 2009年04月02日 14時20分 (#1542414) 日記

    安くなったんだから
    「メモリがおかしい」と思った時に交換すれば良いのではないでしょうか…
    Ubuntu稼動させてるけどサーバユースだから怖くてそんなメモリ使えないよ…

    • Re:うーん? (スコア:3, おもしろおかしい)

      by Wizard_URD (17987) on 2009年04月02日 17時25分 (#1542571) ホームページ 日記

      え?そうしたらM/Bとメモリに旗立ててデジオシに繋いで
      受信端と送信端の波形チェックをして仕様書どおりか
      確認して、違ったらレジスタとキャパシタを交換して波形が
      きちんと出るように調整するものじゃないの?

      ......そんなヤツいるワケないわな.....。

      親コメント
      • Re:うーん? (スコア:2, 参考になる)

        by torikawa (29471) on 2009年04月02日 23時30分 (#1542785)

        今のベースクロック1333MHzなんて狂った仕様のDouble-Data-Rateメモリのアクセス波形だと
        10GHz 10GS/sぐらいのオシロが必要ですよね。
        5GHz位の広帯域差動プローブも。
        安くなったとはいえセットで600万円くらいですかねえ…

        まったく高データレート転送の評価は地獄だぜフハハハハー

        親コメント
    • by t-qt (12190) on 2009年04月02日 14時40分 (#1542432)

      自作派ですがこの考え方ですね。最近とっても安いし。

      自分なら、

      1.新しいメモリをワンセット買ってきてmemtest86でチェック

      2.問題無ければ使用してみて前と同じような使い方で落ちないか確認

      となると思います。

      現象が解決しなかった場合は他のパーツもあれこれ替えてみるうちに無限ループに入る
      恐れはありますが・・・

      親コメント
  • by shiroiwanisan (12855) on 2009年04月02日 14時47分 (#1542439) 日記
    DIMMが2枚なら、一枚ずつさして memtest86でチェックしてみる。

    # NetVistaの古い機械(Cerelon1GHz)で、memtest86でエラーになるん
      だけど、2枚のdimmを入れ替えても、一枚ずつ挿しても同じアドレス
      でエラーになるので、そういうメモリの使い方と(勝手に)判断しました。
    • windiagを使おう (スコア:5, 参考になる)

      by nagika (30998) on 2009年04月02日 19時52分 (#1542669)

      そりゃ無保証のフリーツールでチェックするからですよ。
      Microsoftの「Windowsメモリ診断」でチェックしましょう。
      http://oca.microsoft.com/ja/windiag.asp [microsoft.com]

      memtestでは正しく認識できないプラットフォームでも、windiagなら認識できたって経験多いです。
      身も蓋もないけど、ハードウェアの知識はオープンソースの連中よりMSのほうがよっぽど豊富なんだなぁ、と。

      ちなみに、ベンダーもwindiagなら
      「きみんとこのサーバはWindowsで動作確認してたよね?
       でもMicrosoft純正ツールが『犯人はメモリだ!』と言っているんだけどさ」
      と言えば、一発でメモリ交換してくれます。

      親コメント
      • Re:windiagを使おう (スコア:2, おもしろおかしい)

        by Elbereth (17793) on 2009年04月02日 22時21分 (#1542749)
        >身も蓋もないけど、ハードウェアの知識はオープンソースの連中よりMSのほうがよっぽど豊富なんだなぁ、と

        オープンソース向けには資料を全然公開してくれないメーカーとかあるから
        オープンソースでは使えなかったり性能を十分に引き出せないハードはありますね。
        で、オープンソースなら比較的枯れたハードウェアを使うのが安全という話になる。

        あと、MSとオープンソース陣営を比較すると、仮にMSとオープンソース系の
        プロジェクトなり会社とがそれぞれ同じ割合での対応度だったとしても、
        オープンソース側全体をひとつでくくるとMSのが沢山対応しているように見える。

        例えばA、B、C、D、Eという製品があって、MSはEだけ対応していない、
        オープンソース側のX社がAに対応していない、Y社がBに対応していない、Z社が
        Cに対応していないとなると、MSは80%の対応度、オープンソース側はトータルで
        40%の対応度と見かけ上はなってしまう。
        親コメント
  • 工学の基本原則 (スコア:1, すばらしい洞察)

    by Anonymous Coward on 2009年04月02日 16時10分 (#1542505)
    不備(バグ、不良)があると、正常動作しないことがある。
    しかし
    正常動作しているからといって、不備(バグ、不良)がないことにはならない。

    ソフトでもハードでも、いや恐らくほとんどすべての人間の生産物に関して成り立つでしょう。
  • チェックにかかるコストを考えると
    交換もしくは買いなおした方が安上がりですね

    チェックする事自体をホビーと思えるなら別ですが
typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...