Home

技術系のメモと日々の雑感

ネットワークインストールの速度比較

Linux をネットワークインストールするとき、通常、プロトコルは HTTP とか FTP が選択できるようになっているけど、あまり考えずにいつも HTTP を選んでいた。
過去に誰かに HTTP の方が速いと聞いたからだ。
ところが根拠を思い出そうとしてもずっと分からないまま。
聞いておけばよかったなぁ・・・。
で、この際スッキリするために実際に比べてみることにした。
サーバ側は Vine 4.2 のマシンで、クライアント側に CentOS 5.1 をインストールしてみる。
ネットワーク上にはサーバとクライアントの2台だけしかいない環境にした。
また、パッケージグループはすべて選択することにした。
「次をクリックすると CentOS のインストールを開始します」の画面から「おめでとうございます」の画面が表示されるまでの時間を計ってみると、FTP が15分40秒、HTTP が13分20秒で、噂どおり(?)HTTP の圧勝だった。
でも、何でこんなに差が出るのだろうと疑問に思って、後でもう一度それぞれのインストールをやり直してサーバ側の状態を見ていたら、ちょっと興味深い動きをしていた。
FTP の場合、最初から最後まで1つのコネクションをずっと使い続けるだろうと想像していたんだけど、実際には定期的に張りなおしているようだ。
netstat で見張っていただけなのではっきりとは分からないものの、ひょっとしたら個々のパッケージごとに張りなおしているかもしれない。
これって、長時間コネクションを張ったままにするとタイムアウトしてサーバから切断される可能性があるので、それを回避するためなのかな。
FTP はコネクションが張られる度にクライアントのアドレスを逆引きするので、この部分でも時間がかかっているはずだ。
今回の比較に使った環境ではサーバ側に DNS を同居させていたのでマシだけど、別の DNS サーバに問い合わせる場合はもっと遅くなるだろう。
一方、HTTP は元々コネクションを維持する概念がないのでパッケージごとに張るのは当然として、この部分のオーバーヘッドが少ないことが有利に働いているのではないかと思う。
あと、時間を計ったところ以外のステップで、HTTP は同時に複数のコネクションを張っていることがあった。
なのでインストール全体だと差がもっと広がりそうだ。

この記事に対するトラックバック

この記事のトラックバックURL

-

管理人の承認後に表示されます

  • From: |
  • 2013/04/19(金) 09:23:57

この記事に対するコメント

この記事にコメントする

管理者にだけ表示を許可する