単一ファイルのコピーが遅くなるのはなぜですか?

単一ファイルのコピーが遅くなるのはなぜですか?

2GBファイルをHDDからUSBフラッシュドライブにコピーすると、初期速度は約80 MB /秒で、その後着実に10 MB /秒以下に低下します。

なぜですか?私が見つけた答えはキャッシュに関連していると言いました。しかし、ファイルが一度だけコピーされた場合、キャッシュはファイルと何が関係していますか?キャッシュは何度もコピーされる情報に関するものだと思います。

違いがある場合は、Debian / GnomeでNautilusを使用しています。

編集 - いくつかのベンチマークを追加

2.4GBのmp4ファイルをコピーする前に、ファイルを読み込んでディスクキャッシュに入れるのにかかる時間を確認するために、チェックサムを繰り返し実行しました。

sha512sum file.mp4 (3x)
19s
8s
6s

sha256sum file.mp4 (3x)
10s
10s
10s

sha512sum file.mp4 (3x)
6s
6s
6s

ファイルがキャッシュされているようです。

次にUSBスティックにコピーしました。 Debian 10 のデフォルトインストールは非同期です。 1 分あたりのコピー数、残り時間、総速度は次のとおりです。

few sec 985 MB  13sec left  116 MB/s
1min    1.1 GB  1 min left  18.6 MB/s
2min    1.4 GB  1 min left  11.7 MB/s
3min    1.7 GB  1 min left  9.7 MB/s
4min    2.1 GB  35sec left  8.7 MB/s
4min45  "done"
eject
(it doesn't inform how long it will take)
+2min22 "ejecting" = ~7min total

2403758161÷427 = 5629410.2 = 5.63 MB/s = 5.37 MiB/s

その後、オプションを使用してUSBスティックをマウント-syncし、毎分同じ情報を登録しました。

few sec         20min left  2 MB/s
30s             9 min left  3.9 MB/s
1min    272 MB  7 min left  4.5 MB/s
2min    500 MB  7 min left  4.2 MB/s
3min    744 MB  6 min left  4.1 MB/s
4min    1.1 GB  5 min left  4.4 MB/s
5min    1.4 GB  3 min left  4.6 MB/s
6min    1.7 GB  2 min left  4.6 MB/s
7min    2.0 GB  1 min left  4.6 MB/s
8min    2.3 GB  36sec left  4.7 MB/s
8m26s   done

eject
instantaneous

2403758161÷506 = 4750510.2 = 4.75 MB/s = 4.53 MiB/s

結論として:

チェックサムは、ファイルをメモリにコピーする時間が総コピー時間よりはるかに短いことを示しています。したがって、これを総速度推定の一部として使用するのは間違っているようです。

同期レプリケーションは少し遅いように見えますが、少なくとも残りの時間を正確に渡します。

ベストアンサー1

HDDはUSBスティックよりはるかに高速なので、HDDからファイルを読み取ると、他の作業のためにHDDを取得するためにキャッシュに移動します。その後、データはUSBドライブが処理できる速度でUSBドライブに転送されます。

キャッシュは複数回参照されるファイルに使用されますが、これが唯一の目的ではありません。この例のように、ある時点でファイルを初めて読み取る必要があります。すぐに同じファイルを再コピーすると、キャッシュはHDDの代わりにファイルを転送します。一定期間参照されなくなると、ファイルはキャッシュから消去され、キャッシュから新しいデータを処理できます。

おすすめ記事