2つのファイルを同時にコピーする方が、順番にコピーするよりも遅いですか?[複製]


15

私の上司は、ハードドライブがディスク上の2つの場所の間でヘッドを切り替え続ける必要があるため、2つのファイルを同時にコピーする方が1つのファイルをコピーするよりも時間がかかると言っていました。これは本当ですか?オペレーティングシステムは、これを修正するのに十分なスマートである必要があるように思えます(つまり、それらを順番にコピーすることを知っている必要があります)。USBポートに接続されたドライブにコピーする場合、これは本当ですか?

編集:ファイルシステムに関する他の要因はありますか?たとえば、10個のファイルを含む1つのディレクトリをコピーするのと、ディスク全体から10個のファイルをコピーするのとでは違いがありますか?私は1つのソースメディアと1つの宛先メディアについてのみ疑問に思っています(複数のドライブからの読み取りはありません)。


時々、時々そうではありません。
ダニエルRヒックス

この質問は、ここにいるほとんどの回答者による教育された推測ではなく、実際のベンチマークの恩恵を受けると思います。誰もが回転するディスクを持っていて、暇がありましたか?私は信じているの違いは無視できる可能性がある、SSDのために。一方、ハードディスクについては、ファイルの数とサイズ、およびソースディスクとターゲットディスクの相対的なパフォーマンス(異なる場合)に応じて、大きなパフォーマンスペナルティからわずかなメリットに至る可能性がある思います
ライライアン

1
さらに、USB2で転送する場合は、おそらく違いはありません。一般的なハードディスクの読み取り速度は約50〜100MB / sで、USB2の最大速度は32MB / sであるため、バッファリングによるハードディスク特性ではなく、USBポートがボトルネックになる可能性があります。つまり、どちらかを言うのは難しいです。
ライライアン

@LieRyan回答としてコメントを投稿しなかったのは残念です。USB2による1台のハードディスクから1台の外部ハードディスクへのコピーに関する質問に最適であるため
です。– Celeritas

回答:


12

この質問にあなたを先送りします。同じディスク上で2つのコピー操作を同時に実行すると(別々のコピー操作で開始されますが)、競合する操作間でヘッドシークが前後にシークすることで生じるレイテンシの結果、実際に時間がかかるようです。

ただし、コピー操作が同時に開始される場合、最新のオペレーティングシステムの大部分は、転送を次々とキューに入れるのに十分なほどスマートであり、コピー時間は多少速くなるはずです。

TeracopyFastCopyなど、ファイルコピー操作を強制的にキューに入れて順番に実行するために使用できるアプリケーションが多数あるようです。

ただし、複数の物理ボリュームで同時コピー操作を実行することはまったく別の問題です。代替プロトコルを介してファイルを転送しているように。

USBポートに接続されたドライブへのコピーに関する質問については、ドライブが使用するメモリのタイプと使用されているUSB仕様(USB 1.0および2.0の注目すべきボトルネック)に大きく依存しています。コピー元ボリュームに関する言及された要因。


1
それはシステムのプロセッサ能力にも依存しませんか?
ラグナナンダン

@Raghunandan公正な点-私はそれが完全に状況に依存すると信じています。複数の物理ボリュームまたはSSD / RAMDiskからデータを読み取る場合、マルチコア/ハイパースレッディングは確かにコピー速度を向上させますが、単一のHDDのシナリオでは、コピー速度の制限要因はおそらくディスクのIO速度とヘッドの存在にあります-移動遅延(そのためにより適切な用語が必要だと確信しています...)。
ボスコ

3
@Raghunandan-ファイルシステムほどOSではないかもしれません(NTFSとEXT4)。
エニグマ

2
@Raghunandan PC-24000 DDR3の帯域幅は24 GB / sであり、現代のCPUの制限ではないため、実際にはCPUの問題とは思わない、CPUは少なくとも245 MB / sを処理できますが、これはまだ最速のSSDの帯域幅を超えています。
グローノスタジ

1
@Raghunandanまた、LinuxパーティションはWindowsパーティションよりもディスクの高速部分にある場合があります(たとえば、外部対内部)
アーニー

16

これに影響を与える可能性のある多くの要因がここにあります。

  • ソースドライブ-この回転ディスクまたはSSDですか?ディスクを回転させる場合、ファイルのレイアウトがパフォーマンスに影響する可能性があります。2つのファイルはディスクの異なる部分にある可能性が高いため、これによりヘッドシークペナルティが発生します。前述のように、2つのファイルを一度に選択し、その方法でコピーを開始すると、OSはコピーを順番に処理します。
  • ファイルレイアウト-ファイルの断片化(ソースと宛先の両方)が非SSDドライブのパフォーマンスに影響を与える可能性があります
  • 宛先-単一のターゲットへの書き込みストリームが2つある場合、ヘッドシークの問題に戻り(SSDではないと仮定)、ファイルを大幅にインターリーブできます。かつて私は高性能ストレージを作った会社で働いていましたが、彼らにとって大きな問題の1つは、読み書きできるビデオのリアルタイムストリームの数でした(2kビデオには1秒あたり300 MBが必要です)。書き込みを交互に行うと、コピープロセスが遅くなり、ファイルの読み取りが遅くなります。もちろん、ディスクが断片化して起動した場合、ファイルはインターリーブされて書き込まれます。
  • 単一/複数のソース/ターゲット-ファイルがすべて1つのドライブから来ているか、すべてが1つのドライブに書き込まれているかによって、ヘッドシークの問題は多かれ少なかれ
  • ファイルサイズ-本当に小さなファイルの場合、ヘッドはとにかく次のファイルを探す必要があるため、ヘッドシークの問題は関係ありません

OSがこれを修正するのに十分スマートであるかどうかについては、一般にそうです。つまり、複数のファイルを同時にコピーする場合(たとえば、複数のファイルを一度に選択してドラッグアンドドロップすることを考えてください)。

もちろん、2つのcpコマンドを開始すると、2つのコマンドが実行されます。Windowsでは、別々のファイルをコピー/貼り付けして、画面に2つの「コピー」進行状況ウィンドウが表示され、最適化は行われません。この場合、2つのコピーを同時に実行するようにOSに明示的に指定しているため、1つのコピーが他のコピーよりも重要であると判断してキューイングを開始することはありません。


+1不足しているのはRAID構成のみで、「単一/複数のソース/ターゲット」と呼ばれます。
デビッドハークネス

1
-1言われていることのほとんどは質問とは無関係
です-Celeritas

1

GUIから、または「copy C:\ folder * D:\ folder \」のようなコマンドを使用して複数選択してコピーする場合、ファイルはとにかく順番にコピーされ、質問は意味がありません。

いくつかのファイルをコピーし、それらがコピーしている間に、GUIからの2つの別個の操作、または「cp -r / usr / bin / / opt / bin /& cp -r / usr / local / bin / / opt / local / bin / "-パフォーマンスはほぼ確実に低下します-少し(ハイエ​​ンドのソリッドステートドライブ、両方のコピー操作で大きなファイル)または多分TON(スピニングディスク、一方または両方の操作での比較的小さなファイル)。優れたオペレーティングシステムは、パフォーマンスの低下をある程度緩和する可能性があります。たとえば、最新のLinuxカーネルはCFQ(完全公正キューイング)I / Oスケジューラを使用します。パフォーマンスヒット。場合によっては、ヒットが巨大になる可能性があり、

TL; DR- パフォーマンスに不安がある場合、その操作に含まれる個々のファイルの数に関係なく、一度に1つのコピー操作のみを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.