ホーム > タグ > 負荷削減

負荷削減

Pound + Apache + lighttpdを1台で動かしてみた




あれから負荷分散の方法について色々調べていましたら、「lighttpdはapacheより速くて負荷が低い」という情報が目に入りました。
まぁ、そんなことは以前から知ってはいたのですが、lighttpdの利用歴はiPod touchに試しにインストールしてみたという程度でした。
それでじゃあ実際にどのくらい速くて負荷が低いのか利用者の声を調べてみると、総合して、速さにして同等〜約2倍、メモリ使用量にして3分の1〜10分の1程度という印象を受けました。

これは凄い!lighttpd使ったら複数台構成にするの先延ばしにできるんじゃね?
ということで、複数台構成はひとまず置いておいてlighttpdを使うことにしました。

全てlighttpdにしてしまうのはリスクがあるので、静的ファイルのみlighttpdでホストし、動的ページは今まで通りapacheでホストすることにしました。

もちろんlighttpdとapacheでポート番号を被らせる訳にはいかないので、Poundというリバースプロキシ専用のソフトを入れ、それに80番ポートを割り当て、apacheに81番、lighttpdに82番を割り当て、全て1台のサーバーの中で動かすことにしました。

apacheかlighttpdどちらかにリバースプロキシを兼任させることも考えたのですが、役割が非対称になることに嫌な予感がしたことと、Poundは設定が簡単だということ、また複数台構成にも対応させやすそうなことを考えてPoundを選びました。

今回やったことは負荷分散でもなんでもなく、ただの負荷の削減です。

以下、今回の設定を行うにあたってコマンドのログから主要なものを抜粋。


1.lighttpdのインストール、設定、起動

# yum install lighttpd
# vi /etc/lighttpd/lighttpd.conf
※ドキュメントルートとログファイルのパスとポート番号のみ変更。あとはデフォルトのまま。

# vi /etc/logrotate.d/lighttpd
※ローテートを日単位へ、ログファイルのパスをあわせる

# chkconfig on lighttpd
# /etc/rc.d/init.d/lighttpd start


2.Poundのインストール、設定

# wget http://www.apsis.ch/pound/Pound-2.4.3.tgz
# tar zxvf Pound-2.4.3.tgz
# ./configure
# make
# make install

※設定ファイルのフォーマットがバージョン1系列と2系列で違うので注意。古い設定方法の情報を真似ても全く動作しません。
設定方法、ログファイルのパスの変更方法は以下を参考。
手軽なロードバランサ Pound を導入してみました/楽

# vi /usr/local/etc/pound.cfg
※デーモンモードに設定、ログのファシリティを設定、ローカルにあるwebサーバーのアドレスには127.0.0.1を指定。

# vi /etc/syslog.conf
※ログファイルのパスを変更、lighttpd,apacheでログを記録してるのでPoundはエラーのみ記録

# /etc/init.d/syslog restart

※Poundのlogrotateは未設定。1日後にチェックしてその容量でローテートのスパンを決定する。


3.mod_rpafのインストール、設定

mod_rpafのインストール、設定については以下を参考。
CentOS5.1 に mod_rpaf をインストールする – Nire.Com

# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
# tar zxvf mod_rpaf-0.6.tar.gz
# vi Makefile
※apxsのパスを書き換え

# ./configure
# make rpaf-2.0
# make install-2.0

# vi /usr/local/apache2/conf/httpd.conf
※ポート番号を81番へ。さらに以下を追加。
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1


4.apacheの再起動、Poundの起動

# /usr/local/apache2/bin/apachectl restart
# /usr/local/sbin/pound


後は、レスポンスヘッダのServerの部分を見て、意図したようにapacheとlighttpdで切り替わってるか確認しました。
これでサーバーの負荷削減の効果があったかどうか夜のピーク時に色々調べてみたいと思います。

トップページ > タグ > 負荷削減

検索
フィード
メタ

ページの最初に戻る