2014年1月25日土曜日

WindowsクライアントからWindowsファイルサーバへのアクセスが遅い場合の対処

職場のマシンでファイルサーバにアクセスして、ファイルを開く際に、非常に遅い状況が発生していた。ただ、エクスプローラーでのファイル表示、ファイル操作については問題ない。
色々と調査してみた。

どうもWebClient(Windows標準のWebDAVクライアント)が悪さをしているっぽい。

Windows 2008 ServerあたりからHTTPでのリクエストがあった場合は、要求パケットを「拒否」ではなく「破棄」する仕様となっており、リクエストをかけたクライアント側はずっと応答待ちとなる。

このため、WebClientが有効になっていると、HTTPでのリクエストもかけてしまうためファイルを開く際に待ち時間が発生してしまっていたようだ。

実際にパケットキャプチャしてみると下記の様なログが出ていた。

11:41:20 2014/01/25 21.5614576 Hidemaru.exe 192.168.17.195 192.168.17.10 TCP TCP:Flags=......S., SrcPort=50282, DstPort=HTTP(80), PayloadLen=0, Seq=475345125, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 {TCP:1120, IPv4:4}

やはりHTTPポートでアクセスを試みているようだ。
また、上記のログが何度か出力されており、リトライしている状況が見受けられた。

WebClientのサービスを確認してみたところスタートアップの種類が「手動」になっており、状態は「開始」にはなっていなかった。
ただ、念の為「無効」にしてみたところ、軽快に動作するようになった。
明確に「無効」にしないとHTTPでのアクセスも試みてしまうのかもしれない。

とりあえず直ったので今のところは、そういうものだと思っておく。


■参考サイト
Windows XPからファイルサーバへの接続が非常に遅い
http://www.monyo.com/technical/windows/41.html

XP SP3から2008などへのアクセスが遅い : コマンドまたはファイル名が違います。
http://hpasystem.exblog.jp/15129147/