2006年10月1日

ディスクIO性能(11) - 性能向上に重要な事

「ディスクI/O性能はどのようにすればあげられるのか」を考えてみよう。

そんな本題を考える上でよさげな資料「Performance Comparison of IDE and SCSI Disks 」を見つけた。直接的には、IDEとSCSIを比較した物だが、パフォーマンスを考える上で着眼しなくては行かない点を示してくれる。

ちょー適当にまとめると

  1. ランダムアクセスを向上するには、Tagged Queuing が重要である。ディスク内部のスケジューラが寄与する部分である(つまりはディスクのファームの支配領域)。SCSIとIDEともに TCQ/NCQ として知られており、シーク性能に応じてこれを深くすると良い。但し、IDEのシーク性能が若干劣るのでTCQ/NCQの最大の深さ32では足りなそう。
  2. kernel側のスケジューラは重要。例ではFreeBSDなのでパットしない(デバドラ内にスケジューラがあるのかぁ、、、?)が、ランダムアクセスやインタリーブアクセス?が向上するらしい。多分、複数プロセスで発生するI/Oを捌くには重要な事らしい。
  3. ファイルシステムの種類によって同じ負荷時に発生するI/Oのパターンが変わるらしい。IDE/SCSIはその発生パターンに応じて性能の善し悪しがあるらしい。。。のかぁ?
  4. RAID0/RAID5は使った方がよろしい。HardwareRAID(隠れたSoftwareRAIDを含む)のI/Oスケジューラは馬鹿に出来ないらしい。出来ればベンダー提供のドライバを使った方が吉か!?

つまりは、TCQ/NCQとI/O elevatorとファイルシステムが重要で、ベンダー提供のRAID用ドライバはI/Oスケジューラの改良が入ってる場合があるので馬鹿にならないのかぁ、、、最後が微妙。

ディスクの並行実行性とスケジューリングが性能向上に重要といえば当たり前に聞こえる。検索に結構この問題に対する論文が引っかかってくる(1)。

  • Linux では、SCSI では TCQ は設定出来るが、IDE (/dev/hd?になるデバドラ)にはTCQは入ってい無さそう。SATAのドライバ(libata??)からNCQが使えそうだが詳細は不明だし。
  • Linuxの各種ファイルシステムの善し悪しはどうなんだろう。。。ext3 で良いじゃんと思うが。
  • ベンダー提供RAID用ドライバのI/Oスケジューラの向上はどれくらい入っていたのかも気になる。
  • Linux, Solaris, WindowsNT, FreeBSD/NetBSD 間で I/O elevator を比較をしてみたい気がする。

さて、どれやろうかなぁ。

0 件のコメント:

Cocoa Emacs 24.3 構築 (2013/03版)

暫く使っている Cocoa Emacs を更新していなかったので、24.3 に上げてみた。 当てるパッチは inline patch と ポップアップフリーズ対応パッチ くらい。 24.3 には既にフルスクリーン実装が入っているので、よく使われているフルスクリーンパッチは外し...