Sync A World You Want To Explore

関 信浩が2002年から書き続けるブログ。ソーシャルメディア黎明期の日本や米国の話題を、元・記者という視点と、スタートアップ企業の経営者というインサイダーの立場を駆使して、さまざまな切り口で執筆しています

先日のサーバーのmod_perl化で、MTがキビキビ動くようになったのはいいのですが、httpdが不安定になってしまいました。具体的には、頻繁に「ページがみつかりません」というエラーメッセージが出るようになってしまいました。私はウェブメールを愛用しているので、メールの送信時にこのエラーが出ると、書いたばかりのメールが失われてしまうために泣きたくなります(すでにこの数日で悲劇は10回以上起きています)。

ひらたさんに相談してみると、mod_perl化したhttpdでMTを動かすと、MT全体をキャッシュしてしまうので、多くのhttpdプロセスが立ち上がると、あっという間に大量のメモリーを食ってしまう、ということを教わりました。

とりあえずはhttpd.confの「MaxSpareServers」を小さく抑える(具体的にはメモリ登載量 -100M)/20M程度)ことで応急処置しました。

それでも頻度は減ったものの、やはり時々、悲劇がおきます(実はこのポストの最中にも悲劇が起き、半分以上をいま書き直しています)。

そこで抜本的な解決策として、フロントエンドにロードバランサーも兼ねてPoundを置き、MTはmod_perl化したapache1.3、その他のページはapache2で処理する、ということにしました。

poundの設定はそれほど面倒でないのですが、やはりapache/apache2の設定は複雑なのと、安易にやるとウェブサーバー全体に影響が出てしまうので、とりあえずは参考にするページその他をここに記しておくにとどめます。週末など時間があるときに実作業することにしました。

pound本家
poundについての情報
C10K Problem by 竹迫さん
poundを使った構成の模式図