めんてなのおしごと

Tue, Oct 3, 2017 in debian


「VPSサービスに対して、高速なDebianミラーを提供したい」というのを思いつきました。ただ、あらゆるサービスでフルミラーを内部に置くのは難しいでしょうから、キャッシュプロキシを設置して対応するのはどうでしょう?

  • 思いついた対象候補

IDCFクラウドは、500円クーポンがあったのでこの範囲内で収めたいと思います(この後、さらに1000円クーポンを見つけたので今回の実験には十分ですね)。

  • Debian8 と Ubuntu16.04 なテンプレートがあったので、こちらから仮想マシンを作ります(ファイアウォールの許可設定を忘れてSSHが通らなかった…)。
  • 次にgo-apt-cacherをダウンロードしてちょっと設定して起動します。
  • 最後に/etc/apt/sources.listをいじってcache proxyを参照するようにします。2つのマシンは同じローカルセグメント内に居るので、apt lineのサーバー名はローカルIPを指定しました。
# apt show openclipart-png
Package: openclipart-png
Source: openclipart
Version: 1:0.18+dfsg-14
Installed-Size: 148 MB

有意な差を確認したいので、そこそこの大きさのパッケージを見つけておきました。約150MBなら違いもでるでしょう。

# time apt-get download openclipart-png
Get:1 http://10.6.0.179:3142/debian/ jessie/main openclipart-png all 1:0.18+dfsg-14 [128 MB]
Fetched 128 MB in 10s (12.2 MB/s)          

real	0m10.742s
user	0m2.204s
sys	0m0.420s

まだキャッシュされていない状態からの取得は10.7秒(12.2MB/s)

# time apt-get download openclipart-png
Get:1 http://10.6.0.179:3142/debian/ jessie/main openclipart-png all 1:0.18+dfsg-14 [128 MB]
Fetched 128 MB in 2s (50.3 MB/s)           

real	0m2.758s
user	0m2.028s
sys	0m0.336s

# time apt-get download openclipart-png
Get:1 http://10.6.0.179:3142/debian/ jessie/main openclipart-png all 1:0.18+dfsg-14 [128 MB]
Fetched 128 MB in 2s (43.0 MB/s)          

real	0m3.423s
user	0m2.292s
sys	0m0.396s

# time apt-get download openclipart-png
Get:1 http://10.6.0.179:3142/debian/ jessie/main openclipart-png all 1:0.18+dfsg-14 [128 MB]
Fetched 128 MB in 3s (42.2 MB/s)           

real	0m3.237s
user	0m2.496s
sys	0m0.464s

キャッシュされた状態からだと平均で3.13秒(45.1MB/s)

ということで、12.2MB/s vs 45.1MB/s で3倍は速くなりそう、という雑な結論…ではありますが、IDCFクラウドで最も低スペックなマシン(light.S1、0.8GHz 1CPU/1GB Mem)で提供してもこの結果が出せたので、そこそこの大きさのVM作っておけば、めっちゃ多くのVMからのアクセスでもコンスタントに出せるようにはなるのでは?という推論。次は「同じサービスで他のネットワークにいるVMから同じことやったらどうなるか?」→これでスピードが出るなら、各サービスでgo-apt-cacher使うようにしたら、どうだろう?という提案になるかも。