れっつの たまる家計簿 開発日誌

れっつ さんの家計簿日誌

2009-01-07

キャッシュサーバ稼動開始

携帯ユーザさんのかたは読み飛ばしてください。 というかたまる会員の方は読み飛ばしてください。 最近家計簿の話題ばかりでしたが、ちょっと技術的なことも書きたくなってきてしまったので。。。本当に自己満足ですみません。 とはいえ、すこしこういった先進的なことをやっているんですよ~ってことを書いておくことも会社のためには必要なので。。。 たまるサーバは、WEBサーバ×1、AP(rails mongrel_cluster)サーバ×3、DBサーバ(mysql)×1の合計5台の構成でした。 ruby on railsはユーザが増えるとまともに処理をしていると負荷が増えすぎるので(とはいってもまだこのレベルではちょろいもんですが)、キャッシュを使用するのが定石、というか前提になっています。 ところが、APサーバをはなからクラスタ構成で作ってしまって、キャッシュを適当な場所に作っていて(tmpフォルダに作ってました)、全くキャッシュが利かない~って悩んでいましたが。。今回ようやくキャッシュが利くようになりました。 よくよく原理を考えればなんてイことは無かったのですが、少し悩んだので方法を書いておきます。 1) nfs で共有ディスクを立てます(サーバは、今回ひとつ追加、APサーバ3台にクライアントの設定をします。同じ場所にマウントします。例 /mnt/cache ) http://kajuhome.com/nfs.shtml この辺を参考にしてください。(cent os の場合) 2) rails の publicフォルダのみ、 1) でマウントしたAPサーバの下にチェックアウト(subversion使っている前提です。使っていない場合は、public をコピー。とはいえ、クラスタ構成でリポジトリ使ってないなんて話は無いですよね)。 svn co XXXXXXX/myapp/public 3) mongre_rail の config(mongrel_cluster.yml) を変更(document root に 2) で作ったpublic ディレクトリを指定) docroot: /mnt/cache/public 4) envirionment.rb に 2) で作ったパブリックにキャッシュをはくように指定 ActionController::Base.page_cache_directory = "/mnt/cache/public" といった感じです。 document root = ページキャッシュの場所じゃないと駄目!!つまり、image script などと同じ場所です。ってことは、よくよく考えれば納得なんですが、どうもそれなら、asset server も一緒に設定しないとだめなの?わから~んとかなってしまうとはまります。 apache の機能を使って、キャッシュの有無を確認するという方法もあるようですが、どうも性能が出ていないみたいだったので止めました。

全ブログ一覧

れっつ さんのブログ一覧

れっつ さんのプロフィール

カテゴリー一覧

リンク一覧

最新記事一覧