2007/09/03(月)大きなファイルの転送(上り)が遅い

自宅サーバに置いてあるファイルのうち、大きなファイルを転送しようとした時に速度が非常に遅くなってしまうことが分かりました。
自宅サーバの回線速度は上下100Mbpsですので理論上は12.5MB/s、実際にはそんなに出るはずもないので4MB/sくらい出ればいい方でしょうか?
で、ちょっと所用で大きなファイルを転送する必要が出てきた為、wgetで取得したのですが遅い、遅すぎる。

約250MBのファイルを落とすのに40分くらいかかってしまいました。約100KB/sです。いくら自宅サーバの処理能力が悪いと言っても1MB/sくらいは余裕で出るはずです。で、某所のサーバを利用してファイル転送速度・及びサーバの負荷について速度の出ない理由を某所のサーバを借りて調べてみました。

調査方法

単純に自宅サーバ領域に巨大なファイル(260MBのzipファイル)を置いて、リモートのサーバからwgetで取得するという方法を取りました。
リモート・自宅ともにフレッツ系の上下100Mbpsベストエフォートの接続環境です。

調査結果

最大で2MB/sくらいの転送速度でアップロードできる瞬間もありますが、その速度で5MBほどDLすると急に遅くなる、というか転送ができなくなってしまいました。しかも、上りだけに影響があるならわかりますが、その環境下にぶら下がっているメインマシンによるブラウジングすら満足に出来ない、メッセンジャーが切れる、などの影響が出てしまいました。10~数10秒ほど待つと転送を再開させることはできるのですが、やはり何MBかアップロードするとまた転送が出来なくなります。

結論としては、プロバイダの制限か、それとも回線業者(みかか)の制限かはわかりませんが、長時間高速にアップロードが行われると、一定時間通信を停止させるというような制限が行われているようです。

調査2

では、どの程度の速度なら通信が停止させられることなく転送を行うことが出来るのかを調査してみることにします。
wgetではDL時の帯域を--limit-rateオプションで制限することが可能です。--limit-rateで指定する値はbytes単位です。
下記は100KB/sでDLする場合の例です。

wget limit-rate=100000 www.example.com/foo.bar*1

*1 : ちなみにexample.comは例として利用する為のドメインとしてRFC2606で規定されています

調査2結果

100KB/s
オプションを設定していない場合よりは通信停止発生頻度が少ないものの、発生する
50KB/s
頻度は非常に少なくはなったがやはり発生する
40KB/s
発生せず。このあたりが限界か?

…なんだかなぁ。ADSL 12Mでも100KB/sは出ていたのにそれよりも悪くなってる(∵)
検閲により削除されましたいや、愚痴だらけになってしまったので自重しました