• 締切済み

ストライピングしたディスクのIOのパフォーマンスについて質問です。

ストライピングしたディスクのIOのパフォーマンスについて質問です。 ストライピングなど、複数ディスクにデータを分散することでディスクIOのパフォーマンスが向上すると聞くのですが、どうしてでしょうか。 SCSIなどのバス上では、1つのディスクからのデータしか転送できないと思うのですが、そうすると1つのディスクから読み取ったデータしかバス上を転送できないことになります。 複数ディスクが同時に読み込み、ディスク上のどこかに読み取ったデータを保持するバッファがあるのでしょうか。 単位時間の ディスクIOのデータ量 < バス上の転送速度 という前提で話しています。 以上、もしわかる方いらっしゃったらよろしきお願いいたします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

#3 に補足というかちょっと訂正というか, そんな感じ: まず P-IDE についてはあなたの言われる通りです. こいつは「コントローラがデバイスに対しデータを要求してからデータを実際に受け取る」までず~っとデバイスがバスを占有し続けます. つまり「1つのディスクからのデータしか転送できない」ということになります. 「ハードディスクと CD-ROM ドライブを同じケーブルにつないじゃいけないんだよ」という昔話. 一方 SCSI は高価なだけあってそこまでアホではありません. コントローラがデバイスに対しデータを要求するのは当然同じですが, 時間がかかると思ったデバイスはディスコネクトを発行することによりバスの占有を放棄することができます. これでバスの占有が解除されるので, コントローラは別のデバイスに命令を発行することができます. ディスコネクトしてデータを準備したデバイスは, 今度はリコネクトを要求します. このリコネクト要求をコントローラが受理することで改めてデバイスがバスを占有し, 要求されたデータをコントローラに引き取ってもらいます. つまり, 同じバス型のトポロジであっても P-IDE と SCSI では全く違います. ちなみに SCSI の場合データバスがデバイスセレクトを兼ねているので, (コントローラを含めて) 「データバスの本数と同じだけのデバイス」をつなぐことができます>#3.

全文を見る
すると、全ての回答が全文表示されます。
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.3

>SCSIなどのバス上では、1つのディスクからのデータしか転送 これはどう言う意味でいっているのでしょうかね。SCSIはデジーチェーンができるので、また、パラレル伝送なので、複数のディスクからの同時転送が可能です。転送順番と言う点では、どんな通信方法も1つ一つ(パケットなど)別なので、そのストレージの1パケットの単位、1セクターの単位で、単独で送信されるので、1つ一つ個別です。また、パラレルとは、送受信が別ケーブルと言うこと(送ったものに対してエコーバックがあり、そのトランザクションと言えば、確かにその通信中では1つのディスクとでしか通信していないことになりますが)。 実際に、SCSIで遅い、ファーストSCSI以前の物を使い、その時代のディスクで確かめると、デジーチェーンでつながれたディスクからぞれぞれ1GBのデーターのコピーを全て別ディスクに行うと、見かけ上同時にコピーが始まり、ほぼ同時にコピーが終わります。しかし、よく進捗を確認すると、どれかが、進捗があると、どれかがとまっています。遅いディスクほど分かります。 これを私は10年以上前のSun(SS5 or Ultra10)のマシンで確認しています。現在のULTLA320では、ほとんどわかりません。 >そうすると1つのディスクから読み取ったデータしかバス上を転送できないことになります。 なので、この仮定自体が間違いになります。これは、1セクター(1パケット)のデーターの流れを指しているだけで、全く持って誤解しています。 たぶん、シリアルバス(S-ATA)と、混同しているのでしょう。データー転送には必ず転送されるデーターにヘッダーと終端があり、これは、パラレル転送もシリアルも変わりませんが、シリアルでは、1ケーブル(1コンセント)には、1つのデバイスしかつけることしかできません。これだと言われるとおり、「1つのディスクしか転送できない」となります。 ではなぜ、同時に別ディスクからの転送が可能か? それがコントローラーの役目です。 コントローラー=信号機ですね。交通整理をする以上、当然「待ち」状態が発生するわけだけど、確かにバッファーと呼ばれる記憶域(パソコン側の)を使う場合が多いですが、再送される場合も多いです。この再送に、ディスクになどに備わっているメモリーが有効に働きます。 >ディスクIOのパフォーマンスが向上すると聞くのですが ディスクIOのパフォーマンスが向上することはありません。理論値を超えることはありません。「ディスクIO」の意味がディスクの転送速度とするなら、ありえますが、IOの向上はもっと別なところにあります。 今現在のS-ATAディスクのボトルネックは、ディスク内の転送速度が向上していないことにあります。なので、S-ATA3になっても理論値通りの2倍(S-ATA2の)にならないのも、そのせいです。 ディスク内を高速にするには、回転数を上げるか(ワシントンデジタルみたいに)、ピックアップを複数にするとか、プラッターを大きくするか、ブレイクスルーする仕組みが必要です。 と言うことで、質問の趣旨自体、質問者がかなり誤解している点にあり、そこの誤解をとかないと、なぜストライピングが早くなるか、理解できないと思います。 まとめをすると、データー転送は、コントローラーで転送をコントロールしているので、途中の経路での伝送方式に関係なくコントローラーの数やパフォーマンスに影響されます。 例えばパラレル時代で、1つのケーブルで2のディスクをつなげる事ができました。SCSIだと60個とか(正確に覚えていない)1つのケーブルでつなげる事ができた。その1つのケーブルにつながっている、ディスク同士をストライプにするより、別ケーブるとの組み合わせで、初めてその効果がでる。 それは、コントローラーが別になるので、分散がそこで初めて達成されるため。 S-ATAでも同じです。S-ATAではSAS(マルチレーン)と呼ばれる方式のインターフェースを使ってRaidを構築するのがもっとも効率がよいとされています。このケーブルはS-ATAケーブルを4本以上束ねているので、同時に4つの情報が伝送されることになり、当然コントローラーらもディスク分あるので、全て完全分散になります。 1本のケーブルで行う場合は、ポートマルチプライヤ対応の物を使うことになる。Raidカードでコントローラーの置き方が違うので、値段が高いほど、分散化の質が高いことを示しています(バッファーが多いとか)。

全文を見る
すると、全ての回答が全文表示されます。
  • nnori7142
  • ベストアンサー率60% (755/1249)
回答No.2

 お尋ねの件ですが、RAID0構成の場合、複数のDisk・例えばHDD1・HDD2と言う構成・DATA1~4の連続しているデータがあったと仮定しますと、DATA1をHDD1、DATA2をHDD2、DATA3をHDD1、DATA4をHDD2といった形へデータ格納する方式ですが、各Diskに同時平行して書き込み・読み出し可能にする形式です。複数の物理Diskへ同時に書き込みしますので、1台のDiskに連続データを順次書き込みするより、Disk台数分時間短縮出来る仕様となっております。勿論それはDisk台数を増やすのに比例し、レスポンスも向上するように設計されていますが、冗長性をまったく備えていないことですね。  データーのバッファについては、RAID機能・基板上のCPU・メモリにて管理するようになっており、それはRAIDコントローラー・基板によりレスポンスが違います。  例えば、A社のA・RAIDボードは、RAIDコントローラーに1.2GHzデュアルコアチップ・メモリにDDR2-512MBと言った構成の中で、x8 PCI Express接続にて動作するのに対し、B・RAIDボードは800MHz デュアルコア RAIDチップ・DDR2-128MBメモリと言った構成の中で動作するように設計されていますが、勿論前者の方がRAID制御・データ処理が高速といった形となります。  一番重視しますのが、上記の中のバス接続仕様となりますが、I/FがPCI Expressなのか、PCIバスなのか、PCI-Xなのかでデータレートが変わりますので、PCI Expressが1レーンあたり2.5Gbpsといったレートに対し、PCIバス(32ビット/33MHz)の3倍から4倍といった理論数値、PCI-X規格については、バスクロック133Mhzとレート数値上は1.06GB/sといった理論数値がありますが、そういったバス仕様の性格も影響しますね。

全文を見る
すると、全ての回答が全文表示されます。
  • e3tatsu
  • ベストアンサー率51% (78/151)
回答No.1

バッファというかキャッシュですね. キャッシュは転送遅延を隠蔽するためにコンピュータのあらゆる部分で使われています. キャッシュも重要ですが,より重要なのは質問者様も仰っている 「ディスクIO速度 < バス上の転送速度」です. ストライピングでパフォーマンスが向上するのはこの式が成り立つからです. 逆に言えばこの式が不成立になるまではストライピングを構成するディスク台数の増加によるパフォーマンスの向上が見込めることになります. 例えば,PCI Express x16のデータ転送速度は全二重8GiB/sですが, これに対してディスクIOはSSDでも最良条件で0.25GiB/s,ランダムアクセスではこの数十分の1程度しか出ません.

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PCのパフォーマンスが2分の1に下がり困っています

    PCのパフォーマンスが落ちてきていたのでリカバリーを行ったのですが 逆にリカバリー以前の状態からパフォーマンスが2分の1に下がってしまい困惑しています リカバリー以前にWindows エクスペリエンス インデックスで評価されていたパフォーマンスは プロセッサ 4前後 メモリ 5前後 デスクトップパフォーマンス 3前後  グラフィックパフォーマンス 3.0 ディスクデータ転送速度 5.5 リカバリー後は プロセッサ 1.5 メモリ 2.4 デスクトップパフォーマンス 2.0  グラフィックパフォーマンス 3.0 ディスクデータ転送速度 5.5 になってしまい使い物になりません(両方共ベーシックテーマでの記録です) PCは 【Latitude d531】でAMDTurion TM 64 X2 TL-56 1.8 GHz 512 KiB × 2 搭載 メモリは2G OSはWindows7です リカバリーした後ビデオドライバとオーディオドライバしか入れていないのが 原因なのでしょうか? それらしいものを入れようとしましたがOSが対応していないと表示され インストール出来ているのかも分かりません システムユーティリティというのも入れてみましたが意味が無かったのか変わりませんでした どなたか理由が分かる方がいらっしゃったら手解きをお願いいたします

  • HDDによるPCのパフォーマンスについて

    私のPCにはHDDが2個ついており、1個目はOSの入ったHDD、2個目はデータ用のHDDです。 OSの入ったほうとデータ用のほうのベンチマークのスコア(転送速度?)が倍くらい違いがあり、OSの入っているほうは転送速度が遅いです。 もし早いほうにOSを入れなおして使うと、遅かったHDDを使っていた頃と比べて作業やゲームのパフォーマンスは向上するのでしょうか? それとも、OSの入ってる入っていないに関係なくインストール先のHDDに依存するのでしょうか?

  • RAIDディスクコントローラを変えた場合データは保持される?

    質問させてください。 現在、マザーボード(ASUS製P4P800)のRAID機能を使って、 SATAのHDD*2でRAID 0(ストライピング)を組んでおります。 このマザーを変えたいのですが、 違うRAIDディスクコントローラに変えた場合、 RAID内のデータは保持されるのでしょうか?

  • インデックスの階層数によるパフォーマンスの差

    Bツリーのインデックスで、階層数が増えるとパフォーマンスが悪化するとありますが、なぜでしょうか。 データ量が膨大な場合は、むしろパフォーマンスが上がるような気がしてならないのですが・・・ 例えば階層が3から4に増えた場合、検索時に単にIOが1回増えるだけのように思えますが、その1回のコストを問題にしているということなのでしょうか? 基本的な質問ですみませんが、よろしくお願いします。 (削除リーフ数はゼロという前提で)

  • PCのディスクの読み書きの高速化2014年

    PCのディスクの読み書きの高速化の質問です。 タワー型デスクトップで、拡張性には余裕があるようなPCを使用しており、 大容量データを毎日扱うので、 効率を上げるためにPCのディスク読み書き速度を上げたいと考えています。 予算によるかと思うのですが 2014年時点で、考えられるのは、 連続した大きいデータを一気に読み書きする場合(シークは少な目になるのでしょうか?) 以下の様な高速化ができるのでは?と考えました。 1.HDDを高速なものに交換する 2.HDDをストライピングする 3.HDDをストライピングする+RAIDカード追加(SATA) 4.SSDの高速なものに交換する 5.SSDをストライピングする 6.SSDをストライピングする+RAIDカード追加(SATA) ここで質問なのですが、 壱.他に高速化する方法はありますか? 弐.1.の手法を選択した場合、現在3.5インチ2TBの7200RPM SATAタイプを使用していますが、 SATAタイプでより高速な選択肢はありますか? 参.3.の手法を選択する場合お勧めのRAIDカードはありますか?普通のPCの場合PCI expressカードの物であれば 大丈夫でしょうか? 四.3.と6.の手法を比較した場合、体感速度はかなり違いますか? 五.高速化したいPCはcore2 Duo ~Corei7 の世代の複数のPCなのですが、 古い世代のPCに関してパワーアップの為の部品交換を行い、ディスクIO速度を上げるのと、   PCを一般的なシングルドライブのSATA接続のPCに新たに買い換えるのとでは   どちらがいいと思いますか? 改造の為の投資と、新たに交換する場合のコストパフォーマンスについて なかなか選択肢が多くて、結構考えてみたのですが、 詳しい方の意見を聞いて参考にしたいと思いました。 よろしくお願いします

  • 複数のHDDでページファイルがストライピング?

    Wikipediaの「仮想記憶」に「ページファイルはストライピングが行われるので複数のハードディスクドライブに小分けにしてページファイルを作成すると、ページング速度が向上する」とありました。 複数のドライブにページファイルがある場合は、ドライブレターの若い方から使用されていくものだと考えていたので、以下のように設定していました。 ケース1 ページファイルが4GBでは足りないが、ノートなのでHDDは増設できず、同じHDDの違うパーティションに2つのページファイルを作成した。 しかし、4GBで足りなくなることは希なので、頻繁に使用されるであろう1つめの4GBをディスクの外周のパーティションに作成し、使用頻度の低い2つめの4GBをディスクの内周のパーティションに作成した。 ケース2 RAMを4GB積んでいるが、ビデオメモリのためRAMが2.5GBしか認識されていないので、GavotteでRAMDiskを作成し、認識されていない領域に1.5GBのページファイルを置いた。 RAM+ページファイルが4GBでは足りなくなることがあるため、ケース1同様、外周のパーティションに4GBのページファイルを作成し、RAMDisk内のページファイルをすべて使用したら、外周のHDDのページファイルを使用することを期待。 さらに、同じHDD内の内周のパーティションにもう一つの4GBのページファイルを作成して、不足に備えている。 しかしWikipediaの内容が事実なら、上記のケースはかなりパフォーマンスを落としていることになりそうです。 ケース1の場合はRAMDiskとHDDがストライピングされ、実質HDDの速度でしか動作しません。 ケース2の場合は同じディスクの違う場所のデータに交互にアクセスし、シークが頻繁に発生しそうです。 質問 A. Wikipediaの記事は事実でしょうか? このことに関して出典も書いてありませんでしたし、他にこのような記事は見つけられませんでした。 B. Aが事実なら、複数のページファイルをストライピングしないで使う方法はないのでしょうか。 C. おそらくBは無理でしょうから、上記のケース1と2で何か改善策がありましたら教えてください。 ケース1ではノートで4GBのメモリを積んでいますが、HDDは増設できず、やはり物理RAM+ページファイル≧12288になるようにしたいです。 ケース2では認識されない1.5GBの領域をうまく使いつつ、物理RAM+ページファイル≧12288になるようにしたいです。 どちらのケースもWindows XP SP3 32bitです。 64bitでは1パーティションで4GB以上のページファイルが設定できるそうですが、ドライバがないためそちらは断念しています。 ちなみに、絶対的な物理メモリ不足については、あまり問題になっていないです。 (ほとんどのメモリはスワップアウトして放置)

  • Macに接続しているIEEEのディスクが認識できなくなってしまいました。

    MacにIOデータの80GのディスクをIEEE接続で使用していたのですが、突然ディスクが認識されなくなってしまいました。 再起動をかけると「このディスクは認識できません」と言うメッセージとともに初期化か取り出しを選択させられます。 以前のSCSI接続でしたらNORTONなどで復旧したこともあったのですが、IEEEディスクは初めてで困ってます。 ただ、以前同じような症状が内蔵ディスクでもあったのですが、そのときはSCSIディスクのシステムから立ち上げてDisk First Aidで復旧できました。 今回も状況から判断すると物理的なものではなくヘッダファイルのクラッシュ等の理論的なもののようです。 どなたかわかる方がいらっしゃいましたら教えていただけると助かります。 非常に困ってます。 よろしくお願いいたします。

    • 締切済み
    • Mac
  • AS400のパフォーマンスが重たい

    お世話になります。 昼過ぎからAS400サーバーのパフォーマンスが急に悪くなりました ファイルの更新・データの読込などいつもより一テンポ以上遅いです CPUは40%前後 ディスク使用量は71% です。 オペレーションコンソールPCは現在ディスクチェック中です。 インターネットやファイルサーバーにはスラスラ繋がるので ネットワークの負荷ではないと思います。 コマンドWRKPRBではエラーは上がってきていません。 使用されている現場の方、複数から問合せがきているので AS400になにか問題があるのは間違いなさそうです。 原因は何が考えられますでしょうか。 ご解答宜しくお願い致します。

  • オーディオCDのディスクイメージ

    レコーディングスタジオでマスタリングして頂いたオーディオデータを、CDプレス会社にファイル転送したいと考えています。 データ転送は、下記の様なサービスを利用できると考えています。 http://www.ageru.ne.jp/ 困っているのは、複数の曲が入るCDアルバムなどで、曲間を維持したままディスクイメージ化する方法です。 【1】レコーディングスタジオの環境の事もあり、Mac(10.3or10.4)でディスクイメージを作りたい(Protoolsを使って録音・マスタリングしています) 【2】オーディオデータなので、圧縮をしたくない 【3】CDプレス会社に、どんなソフトが有るかわからないので「.dmg」など、汎用のディスクイメージで、ファイル転送をしたい この様な事が可能なディスクイメージ制作方法(ソフト)をご存じ無いでしょうか ? どなたか、ご教授頂けると幸いです。

  • ストライプボリュームについて

    ストライプボリュームとは2台~32台までの物理ディスクを一つの論理ボリュームにまとめディスクのI/Oパフォーマンスを向上させる機能との事ですが、これはどのようにして機能を向上させているのでしょうか? 全てのディスクを同量にしないといけないとの事ですが、全てのディスクに同じデータを入れているのでしょうか?(つまり全く同じ物理ディスクが何台もありるためデータをいくつものディスクに見に行ける)