【Robocopyでのデータ移行】Robocopyの速度が遅い場合、これを見るべき!

記事タイトルとURLをコピーする

こんにちは!イーゴリです。Robocopyの速度が遅い場合、下記の設定を見るとRobocopyの速度の問題が改善されると思います。

タスクスケジューラのタスクの優先度を確認

タスクスケジューラで実行するものはデフォルトだと優先度が通常以下に設定されているので、 転送速度が遅いパターンが多いです。

対策方法が下記となります。

  • 作ったタスクスケジューラのタスクをエクスポートして、.xmlファイルを任意の場所に保存します。

  • .xmlファイルを開き、7と書かれた箇所の「7」を「6」未満に変更します(0=リアルタイム、1=高、3=通常以上、6=通常)。

  • 編集した XML ファイルを改めてタスクスケジューラに入れます。

リアルタイムスキャンで移行先を監視しているAntivirusがあるかを確認

リアルタイムスキャンで移行先を監視しているAntivirusがある場合、一個一個のファイルを確認して許可・拒否を判断しているため、パフォーマンスが非常に落ちる可能性がありますので、その点をご考慮ください。

移行元にAntivirusがあるとしても影響はないはずです。

移行元・移行先のハードウェアのバランスを確認

移行実施中にサーバーのハードウェアの負荷が下記のように分かれています。

コピー元 コピー先 Robocopyスクリプト実行※1
HDD読み込み HDD書き込み CPU / メモリ

もちろん、コピー元でもコピー先でも多少CPUとメモリが使用されますが、明らかに移行元・移行先でCPU/メモリのリソース不足の状態ではなければ、考慮しなくてよいと思います。

※1 Robocopyスクリプト実行作業は移行元で行う場合、移行元のCPU/メモリを使用します。

Robocopyスクリプト実行するサーバーが別途で作られている場合、移行データが通らないため、HDDパフォーマンスを考慮しなくても良いです。但し、CPUとメモリが使用されますので、スレッド数の設定のチューニングをすることで、転送速度が上がる、下がることがありえますので、下記の項目の通り、スレッド数の設定を変更してみることもありかなと思います。

マルチスレッド数・複数Robocopyプロセス同時実行の適正化

次に確認するべき項目がマルチスレッド数となります。

デフォルトの設定値はRobocopy /MT:8 (8スレッド使用)となっています。 環境(ハードウェアやファイル内容など)によって最適値は異なるため、値を調整して最適な値を探したほうが良いと思いました。私の場合、4、8、16のスレッド数に少しだけ転送速度の差がありましたが、16以上になると差は全くなかったです。

但し、他の環境では別の検証結果になる可能性が高いので、移行する前に適切なスレッド数を検証することをおすすめします。スレッド数の調整と合わせて、複数Robocopyプロセスの同時実行も検証することをおすすめします。

Robocopyコマンドのオプションの適正化

上記と同じく(/MT:8)、他のRobocopyコマンドのオプションを調整することをおすすめします。

一番最初に確認するべきオプションは下記です。

  • 再試行オプションを指定する
  • 再起動可能モードを指定しない
  • ログオプションを指定する

再試行オプションを指定する

/R:n :: 失敗したコピーに対する再試行数: 既定値→1,000,000
/W:n :: 再試行と再試行の間の待機時間: 既定値→30秒

複数ファイルの転送処理の失敗が発生した場合、長い待機時間がかかりますので、私の場合、下記のオプションを指定しています。

/R:1 /W:1

再起動可能モードを指定しない

/Zオプション (再起動可能モード)とはファイルコピーが途中で中断しても、再度コピーする時には、中断したところからコピーが再開される機能ですが、よっぽど大事な理由※がない限り、指定することはおすすめしません。

※例)低速・低信頼のネットワーク経由で巨大なファイルを転送する場合など

/Zオプションを指定しないことで、さらに転送速度が上がると思います。

ログオプションを指定する

ログオプションを指定しない場合、通常のコマンドコンソール画面に出力されますが、ログファイルとして出力するとコピー速度が向上されます。

以上、御一読ありがとうございました。

本田 イーゴリ (記事一覧)

カスタマーサクセス部

・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE

趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽