質問

次の場合のシーケンシャル書き込みとランダム書き込みの違いは何ですか:-1)ディスクベースのシステム2)SSD [フラッシュデバイス]ベースのシステム

アプリケーションが何かを書き込み、情報/データをディスクに変更する必要がある場合、それがシーケンシャルな書き込みであるかランダムな書き込みであるかをどのように知ることができますか。書き込みはバッファリングされていて、バッファをフラッシュするとディスクに適用されます。

私が間違っている場合は私を修正してください。

役に立ちましたか?

解決

人々が話すとき 一連の vs ランダム ファイルに書き込み、それらは一般に、中間探索(「シーケンシャル」)、およびSeek-write-seek-write-seek-writeなどのパターン(「ランダム」)のパターンなしで執筆を描いています。

この区別は、従来のディスクベースのシステムで非常に重要であり、各ディスクシークには約10ミリ秒かかります。同じディスクにデータを順次書き込むと、MBあたり約30ミリ秒かかります。したがって、100MBのデータをディスクに順次書き込むと、約3秒かかります。しかし、それぞれ1MBの100のランダム書き込みを行うと、合計4秒(実際のライティングで3秒、すべてのシークで10ms*100 == 1秒)かかります。

各ランダム書き込みが小さくなると、ディスクが求めていることに対してますますペナルティを支払うことができます。 1億回のランダムな1バイトの書き込みを実行する極端な場合、実際のすべての書き込みに対して3秒のネットを獲得しますが、今は持っているでしょう 11。57日 やろうとする価値があります!したがって、あなたの書き込みが連続的であるとランダムである程度は、あなたの仕事を達成するのにかかる時間に本当に影響を与える可能性があります。

フラッシュに関しては、状況は少し異なります。フラッシュを使用すると、動き回る必要がある物理ディスクヘッドがありません。 (これは、従来のディスクの10ミリ秒のシークコストが発生する場所です)。ただし、フラッシュデバイスはページサイズが大きい傾向があります(最小の「典型的な」ページサイズは、によると約512バイトです。 ウィキペディア, 、および4Kページサイズも一般的であるように見えます)。したがって、少数のバイトを書いている場合、Flashにはページ全体を読み取り、書いているバイトを変更してからページ全体を書き戻す必要があるという点で、フラッシュがまだ頭上にあります。頭の上部からフラッシュする特徴的な数字がわかりません。しかし、経験則では、各書き込みがデバイスのページサイズに一般的にサイズが匹敵する場合、ランダムとシーケンシャルの書き込みの間にあまりパフォーマンスの違いが表示されない場合、フラッシュ上のルールです。各書き込みがデバイスのページサイズに比べて小さい場合、ランダムな書き込みを行うときにオーバーヘッドが表示されます。

さて、上記のすべてについて、アプリケーションレイヤーで多くの人があなたから隠されているのは事実です。たとえば、「シーケンシャル」ライティングの真ん中に非自明性を求めることができる、カーネル、ディスク/フラッシュコントローラーなどにレイヤーがあります。しかし、ほとんどの場合、アプリケーションレイヤーで「見た目」シーケンシャル(希望しない、多くの連続I/O)を書くと、アプリケーションレイヤーで「見た目」が(一般的に悪い)と書くと、シーケンシャルワイトのパフォーマンスが発生します。ランダムワイトパフォーマンス。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top