メニュー

2010年9月17日

漫画 on Webを速くするために

重くなっているらしい「漫画 on Web」を見てみた http://mangaonweb.com/

きっかけは佐藤秀峰氏のTwitter。

サーバの台数を増やすことで、セッションレプリケーション負荷がかかり、全体のサーバの負荷が増えるというようなことは、ありえることなのでしょうか?接続方法の問題のような気もするのですが。。less than a minute ago via web



拡張子doですね。Struts? Javaはよく分かりませんが……。
セッションのレプリケーションとあるので、セッションがWebサーバ上のファイルに保存されてるように思えます。この場合に複数のWebがあって、NFSなどでファイル共有しているってことでしょうか。

セッションを保存するためのサーバを1台に決めて、RDBやKVSに保存するようにし、各Webからはそこにアクセスするように変更すればよいでしょう。

まあ、システムの詳細は分からないですし、プログラム直さなくても簡単に対応できることも書いておきます。

まず静的なリソース(CSS、Javascript、デザイン用画像)を、プログラムとは別のサーバから返しましょう。

サーバはKeep-Aliveが有効になっておりApacheがこれらの静的ファイルを配信しているように見えます。ユーザが増えるとメモリを使いまくるので、静的リソース用のサーバソフト(nginxがおすすめ)を使いましょう。

nginxをリバースプロキシにして、バックエンドのApacheにシステムの処理だけプロキシしてもいいですし、サブドメイン(img.mangaonweb.comなど)を作って、別サーバにしてもいいです。

これだけでだいぶ違います。

さらにCSSとJavascriptはgzip圧縮するようにすると、ネットワーク帯域も節約できます。