ディスクIOが遅すぎてファイルコピーとかRobocopyが失敗する時の対処

Windowsのエクスプローラーで大きいファイルをコピーする時、次のようなメッセージが出ることがある。

2024/08/10 11:01:33 エラー 121 (0x00000079) ファイルをコピーしています E:\folder1\a.txt
セマフォがタイムアウトしました。
2024/08/10 11:01:44 エラー 1117 (0x0000045D) ファイルをコピーしています E:\folder1\a.MOV
I/O デバイス エラーが発生したため、要求を実行できませんでした。

回線細い場所でDBのでっかいDBのバックアップとかSMBで送るときになったりもする。バックアップ用に売られているHDDで5400RPMとかIOが遅いやつでも発生しやすい。

どうやらRobocpyはデフォルトで並列実行されているみたいで、この並列処理の要求にディスクが追いつけず失敗しているみたい。だからこの並列実行数を下げてやったら成功。そのオプション

robocopy AAA BBB /MT:2 /ZB

※”/ZB”のオプションも併せてつけておくと保険になって良い

/mt:<n>n 個のスレッドによるマルチスレッド コピーを作成します。 n は、1 から 128 までの整数である必要があります。 n の既定値は 8 です。 パフォーマンスを向上させるには、/log オプションを使用して出力をリダイレクトします。/mt パラメーターを /ipg および /efsraw パラメーターと共に使用することはできません
/zb再開可能モードでファイルをコピーします。 ファイル アクセスが拒否された場合は、バックアップ モードに切り替えます。

参考URL:Robocopy | Microsoft Learn

投稿日:
カテゴリー: Tech.

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です