ipvsadm - ロードバランサー
http://otaku2dot0.ti-da.net/e2702033.html
ipvsadmの設定を行います # 初期化 $ > ipvsadm -C # 次にパケットの入り口を指定# 負荷分散アルゴリズムにラウンドロビンを使用$ > ipvsadm -A -t 192.168.1.12:80 -s rr # sv1、sv2をバランシングの対象に設定 $ > ipvsadm -a -t 192.168.1.12:80 -r 10.1.1.11:80 -m $ > ipvsadm -a -t 192.168.1.12:80 -r 10.1.1.12:80 -m
なんか意外にあっさり設定できる模様。
現状、2chradioの場合、ボトルネックはmysqlなので
web側をロードバランスしても効果はないんですが、
snsアプリなどを提供する上で、将来にそなえて研究してみたいと思います。
ロードバランサーなんてルーターのNAT変換並の仕事量でしょうから
ノートPC一台で充分機能しそうですね。
もし
http://2chradio.com:8081 http://2chradio.com:8082 http://2chradio.com:8083
みたいにポートを使ってルーターでNAT変換で
割り当てられるローカルのPCを切り替えることはできるんですが、
携帯のブラウザの場合、URLにポート番号を書くこと自体ができない場合があって
使えないんですよね(^^;
もしこれが可能なら、CGI側で
my $lb=int(rand(3)); if($lb eq 0) { $cgi->redirect("http://domain:8081"); } elsif($lb eq 1) { $cgi->redirect("http://domain:8082"); } elsif($lb eq 2) { $cgi->redirect("http://domain:8083"); }
とやれば、http://domainへのアクセスを8081〜8082番のNAT変換で
違うPCにバランスできますよね。
↑PCが一台死んだ場合に切り離す機能がないので、死活監視を組み合わせる必要がある
↑時々HEADして応答を見ればいいだけだから手間はかからないですよね
なんで、ロードバランサーって高いんだろう?
障害対応を気にしないで、純粋に負荷分散だけなら、
市販ルーターに搭載してくれても良い気もする(^^;