メッセージ

2011年04月24日の記事

2011/04/24(日)Win7 -> WinXPファイルコピー問題

2011/04/24 11:01 PC(全般)
ファイルコピーや移動しようとしたときに失敗する問題。
環境は、
[コピー元]
メインPC: Windows7(64bit)
[コピー先]
サブPC: WindowsXP SP3

デフォルトsmb経由。

[症状]
・エクスプローラからなら、ネットワークエラーダイアログが出て「アクセス中に問題が発生しました」となる。
・fire file copyからなら、「指定されたネットワーク名は利用できません」となる。

[発生時期]
メインPCをWin7(64bit)に入れ替えた時期か、サブPCのM/Bを替えてNICをRTL8111Eにした時。

さて、確定で切り分けまでしなかったのだが、どうも【解決】ファイル共有での遅延問題
これと同じ問題のようだ。

現在メインPC・サブPCともNICをRealtek RTL8111Eにしたので、ジャンボフレームを共通でMTU=9KB(MAX)としていた。だが、例の問題を思い出すと(Win7でもsmbの仕様が変わってないのなら)、9KBをデフォルトブロックサイズ4356byteで分割すると、奇数回となり最終応答が帰ってこない。Win7のコピー・移動の手順内でリモートディレクトリのブラウジングが走り、その際にパケットが返ってこないとそのネットワークプレースを使えないと見なすのでは?(ちゃんとパケットキャプチャしなかったので想像)

そんなわけで、4536byte分割で必ず偶数回になるようなMTUを設定してやることにする。今回はジャンボフレーム指定できるNICなのでメインPC、サブPCともMTU=8KBとしてみた。

ワオ、解決。

ほかに試したのは、セキュリティソフト全落としで、これは特に変化無し。

ちゃんと検証するならジャンボフレーム4KBの時にどうなるかやればいいんだろうけど…… まあ今回はいいや。ジャンボフレーム指定できないなら、SizReqBuf指定してやればいいよね、きっと。

私が知る限り、これWindows SMBの実装中でもワーストクラスの仕様なのでいろんなところで引っかかってる人出てる気がするな。

[2011/05/10 追記]
上で色々書いたが、そもそもREALTEK RTL8111Eのジャンボフレーム周りの挙動がなんか変。Win7側への転送が極端に遅い。

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(両者ジャンボフレーム=7KB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
13650 451 46545 476 7130

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

■WinXP(32bit) RTL8111E->Win7(64bit) RTL8111E
(両者ジャンボフレーム=7KB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive T:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
18551 32715 1446 39613 430

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(両者ジャンボフレーム=無効)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
13939 969 46757 901 7130

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(Win7ジャンボフレーム=無効, WinXPジャンボフレーム=5kB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
33864 62439 19284 46829 6904

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

ここで気づいた、再現性すらない。てことはドライバだな。

[現状Driver Ver]
Win7: 7.37.1229.2010
WinXP: 5.782.114.2011

調べてみたらWin7用の新しいドライバがあるようなので差し替え。
Win7 Driver Ver:7.37.1229.2010 -> 7.43.321.2011

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(両者ジャンボフレーム=8kB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
34890 47925 46757 38568 6309

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

何度か計り直したが、ある程度安定したようだ。蟹め。
OK キャンセル 確認 その他