誰でも心当たりがあるこんな現象
これ、もしかしたらパソコンのメモリに問題があるのかもしれません。
問題は、メモリに問題があってデータが化けまくっていてもほとんどそれに気づかないことです。
意外なことに、化けまくりのメモリでもWindowsは立ち上がりアプリも一見普通に動いてしまいます。
たまにアプリやOSが誤動作してもそれはアプリやOSのバグかなんかだろうと思ってしまします。ディスクのデータが化ければディスクの問題かと思ってしまいます。まさかメモリに問題があるなんて思いもよりません。
メモリが化ければデータは壊れます。夜中に自動的に走るデフラグの最中に化ければディスクの中まで壊れてしまいます。たまに化けてアプリやWindowsが落ちても立ち上げ直せばいいや、で済ませられる問題ではありません。
落ちないで大事なデータだけが知らないうちに化けたら落ちるよりもっとタチが悪いです。
こういう問題が潜在しているパソコンは実は結構あったりするんじゃないかと思っています。
海外製の定番のフリーソフトです。Windows上で動くのではなく、専用の起動ディスクからPCを立ち上げて動かします。他のソフトが動いていない状態ですべてのメモリを占有してメモリをくまなく詳細にチェックしてくれます。まずはこのソフトでメモリが物理的に壊れていないかをテストすることをおすすめします。
ダウンロードページはこのページのどこかに書きますので、この文章を最後まで読んでから試してみてください。
起動ディスクを使ってPCを起動すると自動的に以下のような画面が出てテストが始まります。
MemTest86+はすごく精密な検査をします。これが通ればメモリは大丈夫だと思ってしまいます。私もそう思っていました。
ところが、うちのPCでどうもメモリが怪しいと思うことがあり、ごく簡単なテストプログラム(memcpyしたあとmemcmpしてデータが変わっていないか確認するだけ)を作成してWindows上で走らせてみたらびっくり、データが化けまくりです。特にディスクアクセスが行われるとそのタイミングでがんがん化けます。データがこんなに化けるメモリでWindowsが普通に使えていたことがむしろ驚きです。
メモリをくまなくテストするMemTest86+はメモリチップそのものの欠損を見つけるのには適しているのでしょうが、このプログラムはバスを貸切状態にして動きます。実際にいろいろなデータが行き交う実働中のPCでメモリがちゃんと動くかというのはまったく別の問題だったのです。
実際のWindows環境で問題を起こさないかどうかは実際のWindows環境で確認するしかないようです。
私が使ったテストプログラムを末尾にアップロードしておきます。ソースもつけておきますので必要な方はどうぞご自由にご利用ください。
DMemTest 0.02
このプログラムでなくてもかまいませんので、Windows環境でのメモリテストをぜひ行ってみてください。
ちなみに、Windowsに付属している「Windowsメモリ診断」は、名前に反して(?)システム実働中の状態でテストをするわけではないので、この目的のテストには役にたちません。
そういうわけでもないです。Windowsが動いている環境ではOSやドライバにかなりのメモリを取られます。取られた部分はテストできないのでメモリをくまなく調べることができません。
メモリそのもののテストと、実際のOSを動かしての実働中のバスでのテスト、両方が必要です。
いろいろやってみたんですが決定打というのはないような感じでした。
結局私は、メモリを定格動作用(DDR3-1333)のものからオーバークロック用(DDR3-1600)のものに買い換えて解決しました。替えたらRAIDもまったく平気です。
MemTest86+ USBメモリから起動可能なPCとフォーマットしてもいいUSBメモリをお持ちの方は、下のページにある「MemTest86+
V4.20」の「Download - Auto-installer for USB Key」を利用するのが簡単と思います。
http://www.memtest.org/#history (英語)
DMemTest 0.05 上の画面の拙作Windows用メモリテストプログラムです。x64専用です(32bit版Windowsでは動きません)
DMemTestExe.zip
0.98 MB
ソース(Visual Studio 2010
C++)は右記にありますのでご自由にご利用ください。http://www.officedaytime.com/tips/memtestfiles/DMemTestSrc.zip