PCネットワークサポートブログ

2024.04.05

ファイルコピーの時間比較実験

先日、妹とその子ども(つまり甥と姪)が泊まりに来るからと、母より「(イタリア風)ライスコロッケ作って!3合分!!」と言う恐ろしい単位のミッションを命じられ、「商売でもするんか?」と思いながら、せめてもの抵抗でお米2合分に減らしたけど結局大量に余らせて冷凍した10番です。
「普段あまり野菜食べないから、ライスコロッケに混ぜちゃえば食べるでしょ」と言われて玉ねぎやら人参やらピーマンやらを大量に入れたのに、一緒に作ったきのこスープも砂ずりのアヒージョもサラダもバクバク食べてるから、「嫌いなものないん?」と甥に聞いたら「無い」と即答。聞いてたんと違う……。
ああ、余った大量のライスコロッケは全部妹が持って帰りました。

さて、大量と言えば、PCでファイルを大量にコピーすることもあると思います。USBにバックアップ取ったり。我ながら自然な導入!
その際、ファイルコピー(特にネットワーク経由)は大きなファイル1つより、小さなファイル大量のほうが時間がかかる(負荷がかかる)という話をよくするのですが、実際どれぐらいの差異があるのか実験してみようと思い立ち、地獄のような検証をしてみました。
今回はネットワーク経由での実験ですが、USB接続の機器との組み合わせでも同じような結果になります。

まずコピーするファイルの用意。1GBの中身のないファイルを1つ作成。
1GB(1000MB、100万KB、10億B)は正確には1,073,741,824Bとなります。
ということで、コマンドプロンプトから正確に1,073,741,824Bのファイルを作成。
次に上記のちょうど半分のサイズでファイルを2個作成。
最後に合計1GBになるように100kbのファイルを複数作成(?!)。
とりあえず100KBのファイルをフォルダに100個ずつ小分けして、ファイルサイズを調整。
結果的に105個のフォルダに100KBのファイルが10,485個と、端数の77,824B(約76KB)のファイルを作成。

これで正確に合計1,073,741,824Bのファイル群が出来上がりました。
途中で「自分は何やってるんだろう」と人生についてちょっとだけ考えたりしてましたが、まあ、あとは実験あるのみなので……。

とりあえず、比較実験として3パターンが出来上がりました。
あとはネットワーク経由でファイルコピーをし、その時間を比較するだけです。
MTU値は初期値の1500。robocopyで実施。コピー終了までにかかった時間を比較します。
結果は以下です。


1GBのファイル1個。かかった時間:34秒


約500MBのファイル2個。かかった時間:35秒。まだ誤差


1KBのファイル10,485個と端数(約76KB)のファイル1個。かかった時間:8分48秒。速度も明らかに落ちてますよね。

まあ、こうなりますわな。
比較条件が極端すぎるというツッコミは無視するとしまして、合計サイズが同じでも、ファイル数によってこれだけ差が出ます。
小さいファイルを大量にコピーすると、これだけディスクに負荷をかけているという事にもなります。

特にUSBメモリ等にファイルを沢山保存している方は、合計容量が少ないから大丈夫だと安心せずに、ファイル数にも注意をしてください。
以前、USBメモリは使わないとデータが消えるというお話をしましたが、使いすぎても壊れます。(書き換え回数の上限というものがあります)
データ保管とかバックアップについて、ご相談があればいつでもどうぞ。

いつもは文字だらけで殺風景なので、今日は画像をたくさん使ってみましたよ!

コメント

コメントフォーム