ネットワークファイルで巨大ファイルの同期が遅くなる(v3.31以降)

1,872 views
Skip to first unread message

T.T

unread,
Feb 12, 2018, 9:45:27 PM2/12/18
to FastCopy掲示板
v3.31で「ネットワークファイルでも、巨大ファイルはNOBUFFERING扱いに」にされていますが、
何か理由がおありでしょうか。

インターネットVPNで遠隔地へ巨大ファイルの同期をFastCopyでしているのですが、
2017年12月にv3.30からv3.32へバージョンアップした後に転送レートが落ち、
2018年02月にv3.30へバージョンダウンした後に転送レートが戻りました。

バージョンアップ前後にPCやネットワーク等の機器に変更はなく、
プロバイダによる通信制限はないと確認しております。

同期の際は次のコマンドを流しています。

FastCopy.exe /cmd=sync /speed=full "D:\XXXXXXXX\*.TIB" /to="\\172.16.1.1\d$\XXXXXXXX\"
(関係ないオプションは省略しました)

私の環境ではコピー元・先ともほぼ同じで、
ディスク容量と空き容量に差があります。

  OS:Windows Server 2008 R2 Standard
  CPU:Xeon X3440 2.53Ghz
  Memory:4GB
  HDD:コピー元1.50TB(空き349GB)
      コピー先2.62TB(空き116GB)
  NIC:Intel 82574L (Gigabit)


以下はFastCopyのログです(一部伏せ字にしております)。

[v3.30]BUFFERINGあり
=================================================
FastCopy(ver3.30 (NoUI)) start at 2017/12/26 09:24:22

<Source>  D:\XXXXXXXX\*.TIB
<DestDir> \\172.16.1.1\d$\XXXXXXXX\
<Command> 同期(サイズ・日付)
-------------------------------------------------
 No Errors

TotalRead  = 96,183 MB
TotalWrite = 96,183 MB
TotalFiles = 1 (0)
TotalSkip  = 96,162 MB
SkipFiles  = 1 (0)
TotalTime  = 01:20:41
TransRate  = 19.9 MB/s <---転送レート
FileRate   = 0.00 files/s

Result : (ErrFiles : 0 / ErrDirs : 0)

[v3.32]BUFFERINGなし
=================================================
FastCopy(ver3.32 (NoUI)) start at 2017/12/27 15:29:24

<Source>  D:\XXXXXXXX\*.TIB
<DestDir> \\172.16.1.1\d$\XXXXXXXX\
<Command> 同期(サイズ・日付)
-------------------------------------------------
 No Errors

TotalRead  = 96,227 MB
TotalWrite = 96,227 MB
TotalFiles = 1 (0)
TotalSkip  = 96,183 MB
SkipFiles  = 1 (0)
TotalTime  = 04:18:30
TransRate  = 6.20 MB/s <---転送レート
FileRate   = 0.00 files/s

Result : (ErrFiles : 0 / ErrDirs : 0)

T.T

unread,
Feb 12, 2018, 9:51:23 PM2/12/18
to FastCopy掲示板
追記 FastCopyはx64版です。

Hiroaki SHIROUZU

unread,
Feb 12, 2018, 10:26:04 PM2/12/18
to FastCopy掲示板
最新v3.40での結果も教えていただけますか?

T.T

unread,
Feb 12, 2018, 11:15:47 PM2/12/18
to FastCopy掲示板
別ファイルですが、原因切り分けのためv3.41で同期したときのログがございます。
本文と同じファイル、かつv3.40で実施しましょうか?

[v3.41]
=================================================
FastCopy(ver3.41 (NoUI)) start at 2018/02/10 07:04:08

<Source>  D:\XXXXXXXX\*.TIB
<DestDir> \\172.16.1.1\d$\XXXXXXXX\
<Command> 同期(サイズ・日付)
-------------------------------------------------

TotalRead  = 47,908 MB
TotalWrite = 47,908 MB
TotalFiles = 1 (0)
TotalSkip  = 47,750 MB
SkipFiles  = 1 (0)
TotalDel   = 48,403 MB
DelFiles   = 1 (0)
TotalTime  = 02:13:33
TransRate  = 5.98 MB/s <---転送レート

Hiroaki SHIROUZU

unread,
Feb 13, 2018, 12:41:06 AM2/13/18
to FastCopy掲示板
ありがとうございます。

FastCopy最新版で、
fastcopy2.ini の [main]セクションで、 
default_copy_flags=4
と変更した後に、FastCopyを起動して、速度を確認してみていただけますか?
(おそらく5分程度の転送レートが見れれば十分かと思います)

T.T

unread,
Feb 13, 2018, 2:21:15 AM2/13/18
to FastCopy掲示板
こちらこそ、ありがとうございます。

FastCopy最新版(v3.41)で次の[手順A:[手順B]をふみ
「コピー(全上書き)」を行いましたが、
iniファイルがbakにリネームされ、
default_copy_mode="1"のFastCopy2.iniが作成されました。
別のPCでも同じように再現いたしました。

[手順A]
  • 既存のFastcopy2.iniをリネーム
  • FastCopyを起動後すぐ終了
  • FastCopy2.iniの「defalut_copy_mode="1"」を「"4"」へ変更
  • FastCopyを起動
  • FastCopy2.iniがFastCopy2.bakに自動リネームされ、あらたにFastCopy2.iniが自動生成
[手順B]
  • 既存のFastcopy2.iniをリネーム
  • FastCopyを起動後すぐ終了
  • FastCopy2.iniの[main]セクション「defalut_copy_flags="4"」を行追加
  • FastCopyを起動
  • FastCopy2.iniがFastCopy2.bakに自動リネームされ、あらたにFastCopy2.iniが作成

次が結果です。4GB弱のファイルを5分程実施し中断しましたが、遅いままでした。
[手順A]
TotalRead  = 2,287 MB
TotalWrite = 2,035 MB
TotalFiles = 0 (0)
TotalTime  = 05:03
TransRate  = 6.70 MB/s <---転送レート
FileRate   = 0.00 files/s
[手順B]
[手順A]とiniファイルが同一のため実施しておりません。


v3.30で[手順A][手順B]を実施すると、
FastCopy2.iniが自動リネームされることなく、FastCopyが起動いたしました。

次が結果です。同じ4GB弱のファイルをコピーしたところ、3分強で終了しました。

[手順A]
TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 03:14
TransRate  = 19.2 MB/s
FileRate   = 0.01 files/s

[手順B]
TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 03:01
TransRate  = 20.7 MB/s
FileRate   = 0.01 files/s

v3.40は手元になく実施できませんでした。

Hiroaki SHIROUZU

unread,
Feb 13, 2018, 3:15:58 AM2/13/18
to FastCopy掲示板
編集した際、先頭にBOMが入っていないか、ご確認ください。
(notepadを使うと、勝手にBOMが挿入されてしまうようです)

T.T

unread,
Feb 13, 2018, 3:57:31 AM2/13/18
to FastCopy掲示板
知識不足で大変ご迷惑をおかけいたしました。
別のエディタで編集したところ、bakファイルは生成されませんでした。

以下が最新版(v3.41)で4GB弱のファイルをコピーした結果です。

[defalut_copy_mode="1" を "4" へ変更]
TotalRead  = 2,320 MB
TotalWrite = 2,068 MB
TotalFiles = 0 (0)
TotalTime  = 05:12
TransRate  = 6.62 MB/s <---転送レート
FileRate   = 0.00 files/s

[defalut_copy_flags="4" を行追加]
TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 09:23
TransRate  = 6.63 MB/s <---転送レート
FileRate   = 0.00 files/s

Hiroaki SHIROUZU

unread,
Feb 13, 2018, 4:02:43 AM2/13/18
to FastCopy掲示板
ご報告ありがとうございます。

うーん、ちょっと興味深いと言うか、謎というか…

このフラグは「書き込みキャッシュを有効にする(=NO_BUFFERINGを無効に)」というフラグなのですが、この有無に関わらず性能が低下…ということはそれ以外の要素が絡んでいる可能性がありますね。
(もしくは意図通りにこのフラグが効果を発揮していないか)

v3.3以降のソースコードをもう少し見ておきます。

Hiroaki SHIROUZU

unread,
Feb 13, 2018, 4:19:29 AM2/13/18
to FastCopy掲示板
別の方法として、I/O設定で書き込みキャッシュを有効にするサイズを変更するという手もありますので、もしよろしければご確認ください。

KB単位なので、NTFS系の欄に 1000000000 を指定すれば1TBとなり、実質上常時、書き込みキャッシュ有効になるかと思います。

T.T

unread,
Feb 13, 2018, 5:02:04 AM2/13/18
to FastCopy掲示板
アドバイス、本当にありがとうございます。

v3.30、v3.32、v3.41のiniファイルを削除後にFastCopyを起動し、
書き込みキャッシュを有効にするサイズを「1000000000」(1TB)に書き換え、
先ほどと同じ4GB弱のファイルをコピー(全上書き)してみました。

[v3.30]
TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 03:01
TransRate  = 20.6 MB/s
FileRate   = 0.01 files/s

[v3.32]
TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 09:17
TransRate  = 6.70 MB/s
FileRate   = 0.00 files/s

[v3.41]
TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 09:25
TransRate  = 6.61 MB/s
FileRate   = 0.00 files/s

v3.31とv3.40はあいにく手元に無く結果を提示できませんが、ご参考になれば幸いです。

Hiroaki SHIROUZU

unread,
Feb 13, 2018, 5:05:07 AM2/13/18
to FastCopy掲示板
ご報告ありがとうございます。

どうも、NO_BUFFERING以外の変更が余波を与えている、というのが正しそうですね。
手元のネットワークドライブ環境では問題ないので、レイテンシのあるドライブへの書き込み時のみ発現する問題、といったものがあるのかもしれません。
あとでソースの差分を見ておきます。

Hiroaki SHIROUZU

unread,
Feb 14, 2018, 3:49:16 AM2/14/18
to fast...@googlegroups.com
linuxで tc qdisc コマンドを使って、
1. レイテンシ
2. パケットロス
3. ジッタ
の3つをいろいろと変化させて、転送レートを観察した結果、ジッタの大きい環境のみ非同期I/O数を増やした方が良いようですね。

v3.41を使って、iniファイル設定は初期値に戻した上で、I/O設定の非同期I/O発行数を32にしてみてください。

P.S ちなみに、結構古いWindows Serverのようなので、SMB 2.xまでだとすると非同期I/Oへの追随がどこまでできているか、という部分は気になります。

T.T

unread,
Feb 14, 2018, 5:16:17 AM2/14/18
to FastCopy掲示板
ご調査いただき本当にありがとうございます。

お申し出の環境で実施しましたが、残念ながら転送レートは改善しませんでした。

TotalRead  = 3,741 MB
TotalWrite = 3,741 MB
TotalFiles = 1 (0)
TotalTime  = 09:37
TransRate  = 6.48 MB/s
FileRate   = 0.00 files/s

ちなみに、サーバ間のRTTは5-7msです。値は安定しています。
P.S. 古いOSですよね。コピー元のOSを更新する計画を検討していたので、コピー先も検討してみます。

Hiroaki SHIROUZU

unread,
May 30, 2018, 2:29:00 AM5/30/18
to FastCopy掲示板
最新v3.50で、ネットワークドライブ相手のNO_BUFFERINGを止める動作に戻しています。
変化があると良いですが。

T.T

unread,
May 30, 2018, 4:08:15 AM5/30/18
to FastCopy掲示板
かしこまりました。最新v3.50、かつデフォルト設定で転送レートを確認してみます。
今しばらくお待ちください。

T.T

unread,
May 31, 2018, 3:36:37 AM5/31/18
to FastCopy掲示板
お待たせいたしました。
以前と同じ環境のまま、最新v3.50をデフォルト設定で動作させ、間隔を空けて2回実施したところ、2回とも以前の転送レートになりました!
ありがとうございます!

TotalRead  = 3,114 MB
TotalWrite = 3,114 MB
TotalFiles = 1 (0)
TotalTime  = 02:42
TransRate  = 19.2 MB/s
FileRate   = 0.01 files/s

TotalRead  = 3,114 MB
TotalWrite = 3,114 MB
TotalFiles = 1 (0)
TotalTime  = 02:44
TransRate  = 18.9 MB/s
FileRate   = 0.01 files/s

Hiroaki SHIROUZU

unread,
May 31, 2018, 4:25:47 AM5/31/18
to FastCopy掲示板
早速のレポートありがとうございます。

改善したようでなによりでした。
Reply all
Reply to author
Forward
0 new messages