Linux、ナゾのiowaitの正体

Posted on 2007年07月10日 | Comment (0) | TrackBack (0)

職場には高性能らしいサーバーがたくさん置いてあって、眺めも壮観です。HPのProliantというマシンで、Linuxが入っています。

ところがある日、謎の性能劣化が起きました。
なんだかよく分からないけど遅いんです。ソフトウェアも悪くなさそうだし、ハードウェアもちゃんと動いてます。でも、何かが遅い。。
唯一分かっていたことは、遅いマシンは iowait が高い ということでした。

症状だけ見れば、純粋にDISK IOが多くなりすぎてヘバってしまったか、ディスクへの入出力が何らかの原因で遅くなっているか。
しかし、何度確認しても

  • ディスクIOが多いとは思えない。(アクセスランプがそんなに点灯してない)

  • dmesg等で見ても、SCSIの転送レートが落ちてるようなメッセージは見当たらない。

ということで、もっと下位の部分なのかしらね~ というくらいしか分からず、、お手上げ状態でした。

犯人はRAIDコントローラー

このマシン、完全なハードウェアRAIDなコントローラーを搭載していて、ディスクが死ねば その部分だけさくっと交換できる優れものです。交換に際し電源を落とす必要もありません。

謎のiowaitの原因はそのRAIDコントローラーでした。
このRAIDコントローラーはRAID-5で動くものなのですが、性能を犠牲にしないために結構な大きさのwrite cache を積んでいるようなんです。でもって、

突然の停電に備えるため、write cache はバッテリーで内容が保存されるようになっている。
このバッテリーが死ぬと write cache内のデータが保証されなくなるため、安全のために write cache なしでの動作に切り替わる(汗)。

というわけでして、、このバッテリーが寿命を迎えていたために、write cache が off の状態で動作していたと、いうわけでした。。

RAID-5 はwrite cache がないと使い物にならないくらい遅いです。最低です。

だって知らなかったんだよぅ

このマシン(というかRAIDコントローラー)にバッテリーが積んであって、それが寿命を迎えると性能が落ちるなんて話は知らなかったですね。。ほんとに。

web で散々調べましたが、RAIDコントローラーのバッテリーが原因でiowaitが出たという記事は1件もありませんでしたので、ここに書いてみました。
もしあなたが謎のiowaitに悩んでいるのなら、そこらへんも疑ってみてください。

トピック

トラックバック

このエントリーのトラックバックURL:

コメント

コメントフォームに記入し投稿してください

初コメントのときは、このてらかどの承認が必要になります。承認されるまでコメントは表示されません。そのときはしばらく待ってください :)





Recent Entries
Archives
Feed
Search

Powered by

Valid CSS!