プロフィール

れっつ

登録 2008年4月1日

明細数 725 明細

おとなりさん 17 人

RSS

スポンサーサイト

カレンダー

前月 1月 次月
01 02 03
04 05 06 07 08 09 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

2009/1/7

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

携帯ユーザさんのかたは読み飛ばしてください。

というかたまる会員の方は読み飛ばしてください。

最近家計簿の話題ばかりでしたが、ちょっと技術的なことも書きたくなってきてしまったので。。。本当に自己満足ですみません。

とはいえ、すこしこういった先進的なことをやっているんですよ~ってことを書いておくことも会社のためには必要なので。。。

たまるサーバは、WEBサーバ×1、AP(rails mongrel_cluster)サーバ×3、DBサーバ(mysql)×1の合計5台の構成でした。

ruby on railsはユーザが増えるとまともに処理をしていると負荷が増えすぎるので(とはいってもまだこのレベルではちょろいもんですが)、キャッシュを使用するのが定石、というか前提になっています。

ところが、APサーバをはなからクラスタ構成で作ってしまって、キャッシュを適当な場所に作っていて(tmpフォルダに作ってました)、全くキャッシュが利かない~って悩んでいましたが。。今回ようやくキャッシュが利くようになりました。

よくよく原理を考えればなんてイことは無かったのですが、少し悩んだので方法を書いておきます。

1) nfs で共有ディスクを立てます(サーバは、今回ひとつ追加、APサーバ3台にクライアントの設定をします。同じ場所にマウントします。例 /mnt/cache )

この辺を参考にしてください。(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 の機能を使って、キャッシュの有無を確認するという方法もあるようですが、どうも性能が出ていないみたいだったので止めました。

コメント(1)

日記を一回も、公開してない場合・・・コメントかきこめない???

あいさつもできない???・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・まる。

コメント登録

名前

コメント

最近の記事