LAN内でFTP通信を行う

 おとといからファイル・サーバー、バックアップの話ばかり書いているなあ。パソコン関係の話を書いただけで、おとなり日記*1がとても増えている。
 ファイル・サーバーにデータを大量転送した。
 LAN対応のハード・ディスクは、パソコン周辺機器売り場で一等地を陣取る旬の製品である。国内には有名メーカーが3社くらいあって、性能競争を繰り広げている。たくさんの気の利いた機能がてんこ盛りにであるが、最大のセールス・ポイントは読み書き速度のようである。CPUやネットワーク・インターフェースの性能向上、チューニングだけでなく、ファイル転送の王道、FTPが利用できるようになった。広告では80Mbps〜90Mbps程度を掲げるのが業界水準のようである。
 ところが、この数字は実際には出ない。この数字は最適な機器構成で大きなファイルを転送したときに一部の時間だけ出る数字である。乗り物と同じで、スタートからいきなり最高速度が出るわけではなく、最高速度に達するには時間がかかる*2
 今回は以下のような規模のファイルをサーバーにコピーした。

  • 全体で約30GB
  • フォルダーだけでも数千、ファイルは数万単位で存在する
  • ワープロなどの文書ファイルが中心だが、大きなファイルも点在する
  • クライアント側のディスクはハードディスク*3

Windows XPのタスク・マネージャーを眺めていたら、たくさんの小さいファイルを送っているときは数Mbpsから、最大でも10Mbps弱、複数のファイルを圧縮して作った大きなファイルを転送しているときは最大瞬間風速的に50Mbps台に届くのがやっとである。全体を平均したら確実に10Mbps以下だ。
 ハードウェアでは、PCの性能、PCのネットワーク・インターフェースの性能、スイッチング・ハブの性能が影響する。それに、他のソフトウェアや他のLAN上の機器が通信を行っているか否か、通信の設定値にも左右する。通信前後には制御信号なども入るので、実際は100BASE-TXの理論上の限界*4に近づけるのは難しいが、せめて70くらいはいかないかと考え、Windowsファイル転送ではなく、FTPならもう少し早いかと考えた。FTPは、もともとファイル転送のために作られた通信方式。ちょっと期待した。
 フリーウェアのFTPクライアントを使う。昔はよく使ったが、FTPダウンロードはブラウザですることが多くなったように思う。家庭ではWebサイトにコンテンツをアップデートするくらいしか使われないのではないか。
 FTPは、Windowsのコマンド・プロンプトでもできるのだが、FTPクライアント・ソフトはGUIで操作できるようになっていて、本来はユーザーが入力しなければコマンドに作り変えてメモリーに格納し、コマンドとしてサーバーに送信する予定の命令をあらかじめ決めてから通信を始める仕組みになっている。
 通信が始まる前、FTPクライアントのCPU使用率が100%ぎりぎりまで上がる。どうやら、作成するコマンド数が多すぎるらしい。その後、通信が始まるものの、ソフトウェアが不安定になっているように見える。また、サーバーからの応答が早すぎるようで、サーバーから受け取るのもアップアップという感じである。どうも、フリーウェアはインターネット上で、ISDNや、ADSLでの通信を想定した設計になっているようで、数十Mbpsで即応されると耐えきれないようである。これらは見た様子をもとに検証なしに述べただけで、チューニングめいたこともしていないので正確ではないかもしれないが、

通信が異常切断するか、FTPクライアントが異常終了するかしてしまう

という、客観的にわかりやすい事実も目撃した。著名なソフトウェアを使っていたのに意外だった。ちなみに、速度はWindowsファイル転送とほとんど変わらなかった。
 別のソフトウェアに変えたら、安定性は確保できた。それでも速度も向上は見られなかった。
 聞いたところによると、今回試した100Base-TXの環境から1000Base-Tに上げても、家庭用の機器では、理論上の最大値が10倍になるわりには思ったほど転送速度の伸びは見られないようである。

 結局、今まで使っていたWindowsファイル転送管理ソフトを継続使用することにした。

*1:本ページでは編集画面からしか確認できない

*2:乗り物の例を出してしまったので、車輪から回転を想像してしまうが、FTPの場合は、転送の前後にファイル本体とは別の情報をやりとりしているのが小さいファイルの平均転送速度を落としている理由であり、小さいファイルを送る際にディスクの回転速度が落ちるわけはない

*3:ボトルネックになっていないことを祈ろう

*4:100Mbps