解説 メモリ診断ツールの有効性を確認する――IT管理者にとって必携のツールか?―― 1. なぜメモリ・エラーは生じるのか? デジタルアドバンテージ |
「メモリを増設したら、しばしばPCがハングアップするようになった」「あるPCで使っていたメモリ・モジュールを、別のPCに装着したら、どうもOSが不安定になった気がする」 このような経験はないだろうか? メモリ・モジュールの不良などによりメモリ・エラーが生じると、こうしたトラブルがPCに発生することがある。しかし、メモリ・モジュールの着脱直後にこうしたトラブルが生じたならともかく、前触れもなかった場合は、なかなかメモリ・エラーがトラブルの原因だと把握できないものだ。メモリの読み書きでエラーが生じた結果、PCがハングアップしても、多くのPCではエラーの記録が残らないため、その原因が分からないからだ。こうした障害は、なかなか原因が特定できず、管理者の悩みの種となることが多い。 メモリ・エラーはデータの損失やシステムのハングアップに直結する重大なエラーである。その点では、クライアントPCよりミッション・クリティカルなサーバの方が、メモリ・エラーによる影響は深刻だ。サーバは、クライアントPCよりもエラー検出機能が充実しているとはいえ、運用中にメモリ・エラーが発生するような事態は避けたいものである。 このようなメモリ・エラーの問題に対して、メモリの動作テストを行う「メモリ診断ツール」というソフトウェアの分野が、古くから存在する。今回はその中から「R.S.T.(Ram Stress Test)」という製品を取り上げ、メモリ・エラーの原因やR.S.T.の機能を解説しながら、その有効性を探ってみる。 |
標準規格が存在していても、メモリ・エラーは発生してしまう?
R.S.T.を紹介する前に、なぜメモリ診断ツールが必要になるのか、考察してみよう。そもそも、メモリを含むPCのハードウェアが正しく設計されており、かつ意図されたとおりの品質を保っていれば、メモリ・エラーなど生じないように思える。しかし悲しいことに現実はそうではない。
PCのメイン・メモリ(コントローラとメモリ・チップ)は、JEDECやRambusなどが策定した標準規格(仕様)に沿って設計・製造されている。ここでいう標準規格とは、PC133やPC2100、PC800といったものだ。となれば、同じ規格に合致していれば、どのようなPCとメモリ・モジュールの組み合わせであっても、正しく動作しそうだ。しかし実際には、規格に正しく準拠していない製品が市販されていたり、あるいは規格の範囲内で仕様が微妙に異なっていたり、単純にテストが足りなくて不良個所を内包したままメモリ・チップが出荷されたりすることにより、メモリ・エラーを生じる場合がある。
把握しにくい「相性問題」によるメモリ・エラー
特に厄介なのは、いわゆる「相性問題」の範疇にあるメモリ・エラーだ。相性問題とは、特定のパーツの組み合わせだけでトラブルが生じることを表す俗称で、微妙な仕様の違いが原因とされる。0と1で情報を扱うデジタル機器に「相性」など、ばかげていると思えるかもしれない。しかし、標準規格を満たすように設計され、個別のテストもパスしたパーツ同士でも、規格で定められなかった部分や、規格内容の解釈の微妙な違いなどにより、それぞれの仕様に差異が生じてエラーの原因となってしまった例は過去にもある。メモリ・モジュールの相性問題は、あるPCに装着すると正常に動作するのに、別のPCではメモリ・エラーが発生してハングアップを引き起こしたりする、というパターンだ。
1枚だけメモリ・モジュールをPCに装着した場合は正常に動作するが、2枚以上搭載するとエラーが発生する、というパターンもある。これは、メモリ・モジュールの枚数が増えるほど、メモリ・バスの信号線にかかる負荷も高くなり、電気信号の遅延が長くなっていくことによる。電気信号のタイミングのマージン(余裕)が小さい製品同士を組み合わせると、こうしたトラブルを生じることがある。これも相性問題といってよいだろう。
相性問題によるメモリ・エラーを防ぐ方法は?
相性問題における最大の問題点は、トラブルを抱えているパーツが果たしてどれなのか判然としないことだ。前述の例では、一見すると追加したメモリ・モジュールが原因のように思えるが、実は最初から装着されていたメモリ・モジュールのタイミング・マージンが足りないのが原因、という場合もある。こうしたトラブルを確認する手法の1つとして、PCのパーツを1つずつ入れ換えていって動作を確認し、正常なパーツと「あやしい」パーツに分類する、という方法がある。しかし相性問題の場合は、この分類自体が困難なことがあるし、テストに時間もかかる。パーツの交換作業中に、パーツの損傷など新たなトラブルを引き起こす可能性すらある。
こうした相性問題を防ぐには、実装するPCやサーバで、テストを行ったメモリ・モジュールを選択するのが有効である。つまり、PCベンダがラインアップしている純正オプションや、あるいはサードパーティが実際にテストして市販しているメモリ・モジュールを選ぶのだ。程度の差はあれ、どちらもテストされているのだから、相性問題が生じる可能性は極めて低いことが期待できる。しかし、PCの場合はそれでも完璧ではない。大手ベンダ製のPCであっても、マザーボードやBIOSのバージョンの違いによって、メモリ・チップを制御する電気信号のタイミングなども微妙に異なることがあり、相性問題を引き起こす可能性があるからだ。となると、相性問題の有無などを確認するテストは、自前で行わざるを得ない。
POST時のメモリ・テストは、エラーの診断には役に立たない? |
メモリ・チップの故障によるエラーも無視できなくなりつつある!?
ハードディスクなどの稼働部品を持つデバイスに比べて、半導体であるメモリ・チップの故障率は非常に低い。しかし大容量のメイン・メモリを搭載するサーバでは、大量のメモリ・チップを搭載することから、メモリ・チップの故障によりエラーが生じる可能性もある。例えば現在主流の256Mbitsメモリ・チップの場合、64Gbytesの容量を実現するには、データ用だけでも2048個のメモリ・チップを実装する必要がある。1チップが故障する確率が極めて低くても、それが2000個も実装されると、全体として故障する確率は無視できなくなってくる。
とはいえ、サーバの場合はECCなどメモリ・サブシステムの耐障害機能が充実しており、ハードウェア面でメモリ・エラーを検出できる*1だけ、まだ安心できる(たとえ万全ではなくても)。その点ではむしろ、耐障害機能が実装されていないクライアントPCの方が危険性は高い。たとえメモリ・エラーが生じてシステムがハングアップしても、「メモリ・エラー」が原因であることが把握できず、トラブル・シューティングが難しいからだからだ。またメモリ・エラーによりメモリ上のデータが化けてしまっても、それが検出されないままハードディスクに保存されてしまい、結果としてデータの損失につながることも考えられる。最近ではクライアントPCでも1Gbytesという大容量のメイン・メモリを実装することも現実的になってきているから、危険性はなおさらだ。
*1 本来ECCは、宇宙線によるDRAMのソフト・エラーを検出するためのものだ。しかし、最近のサーバに実装されているECCはメモリ・チップごと故障するといったハードウェア・エラーを検出できるようになってきている。 |
以上のような事情から、ユーザー・レベルでメモリをテストして、エラーがないかどうか確認するためのツールが必要となるわけだ。次ページでは、メモリ診断ツールの1つであるウルトラエックスの「R.S.T.(Ram Stress Test)」を実際に使用し、本当に役立つものなのか探ってみる。
INDEX | ||
メモリ診断ツールの有効性を確認する | ||
1.なぜメモリ・エラーは生じるのか? | ||
2.「R.S.T.」に見るメモリ診断ツールの実体 | ||
「System Insiderの解説」 |
- Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう - 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は? - IoT実用化への号砲は鳴った (2017/4/27)
スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか? - スパコンの新しい潮流は人工知能にあり? (2017/3/29)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
|
|