3

私の質問は、Windows のリモート ファイル システムについてです。

たとえば、ネットワーク上のファイル システムにアクセスできるワークステーション X があるとします\\ServerY\MYDir\

X に 2 つの同時スレッドがあるシナリオを想像してください。

  1. スレッド 1 は、X - のローカル ハード ドライブ ディレクトリにファイルを書き込んでいますC:\MYDir\
  2. スレッド 2 は のリモート ファイルに書き込みを行っています\\ServerY\MYDir\

これら 2 つの IO 操作は実際には独立しているかどうかを知りたいです。つまり、スレッド 1 は X のハード ディスク コントローラーのみを使用し、スレッド 2 はネットワークのみを使用し、すべてのデータを有線でサーバーに渡します。サーバーY.

または

スレッド 2 も X でローカル キャッシュ データを作成していますか (したがって、X でハードディスク コントローラーを使用しています)。この場合、スレッド 2 の IO 操作がスレッド 1 の操作に干渉し、パフォーマンスが低下する可能性があります。

基本的に、ローカルファイルとリモートファイルへの書き込みを並行して行うと、何かメリットがありますか?

私の質問は、Microsoft Networks や NFS などの Windows でサポートされているリモート ファイル システムに固有のものです。

4

1 に答える 1

0

通常、Thread2 は書き込みをローカルにキャッシュせず、2 つのスレッドは独立しています。したがって、一般的には、両方のファイルに同時にアクセスすることでパフォーマンスが向上することがわかります。

また、通常、異なるディスクにある 2 つのローカル ファイルにアクセスすると、パフォーマンスが向上します (それらが同じコントローラー上にある場合でも)。

ファイルが同じディスク上にある場合でも、ディスクをビジー状態に保つことができるため、多くの場合、パフォーマンス上の利点が見られますが、ヘッドのスラッシュを回避するには、大きなブロックで IO を実行する必要があります。ローカル ドライブがフラッシュの場合、シーク タイムがないため、複数のスレッドで読み取り/書き込みを行っても、ハード ドライブの場合のようにパフォーマンスが低下することはありません。

これに影響を与える可能性のあるいくつかのこと: 1: Windows は、クライアントがリモート ファイル システムのファイルをローカル ドライブに読み書きできるようにする「オフライン ファイル」をサポートします。以前は、オフラインのときにクライアントがローカル キャッシュのみを使用していたときでした。Win8がこれを変更するかどうかはわかりません。

2: "\ServerY" は、実際にはローカル マシンを指している可能性があります。

于 2013-09-30T18:52:50.500 に答える