Catalyst

Lighttpd + Catalyst FastCGIの設定: 複数アプリ&外部FastCGI

| | |
色々試した結果,ようやく良い感じのlighttpdのFastCGI設定が書けたので公開しておきます。環境はCatalyst-5.64 + lighttpd-1.4.10で,他のバージョンではテストしていません。
  • 複数アプリ対応
  • local-server, external-server両方の例
  • $c->baseや$c->uri_forも正しく動く
  • app/root/static以下のファイルはlighttpdが処理する

Link: CLON - 2006/02/20 - lighttpd+fastcgi時のメモリ共有

| | |
CLON - 2006/02/20 - lighttpd+fastcgi時のメモリ共有 このパターンで実行すると親プロセスがlighttpdになっている以上,forkする元がlighttpdなので,共有されるはずがありません。WebプログラマのためのCopy On Write解説:mod_perl/FastCGIでメモリを節約する方法 | Typemiss.netに書いたとおりです。もうちょっとしっかり実験しておきましょう。

TT2はCopy On Writeと相性が悪い

| | |
CoWでテンプレートキャッシュを共有!(C::V::H::T編) | Typemiss.netではHTML::Templateのテンプレートキャッシュを共有させてメモリを節約する話を書きましたが,同じことをCatalyst::View::TTでやろうとするとどうなるか,です。 TT2はH::Tに比べて内部が複雑で,普通に読み込ませておくだけではうまく共有することができませんでした。色々小細工をしてみたものの,copy on writeの発生を防ぐことができず,どうやっても子プロセスごとにメモリを用意する必要があるようです。

CoWでテンプレートキャッシュを共有!(C::V::H::T編)

|
WebプログラマのためのCopy On Write解説:mod_perl/FastCGIでメモリを節約する方法 | Typemiss.netではCopy On Writeの概観を示しモジュールはfork前にロード!と書きました。今度はWebアプリケーションが使うデータ領域を共有し,更にメモリを節約することを考えてみましょう。何を共有するか? Webアプリケーションが共通して使うデータには何があるか? 一番先に思い浮かぶのがテンプレートのキャッシュです。

WebプログラマのためのCopy On Write解説:mod_perl/FastCGIでメモリを節約する方法

| | | |
Perl:forkしたプロセス間でのメモリ領域の共有 (Link: 遅レス。 - Apache + mod_perl - MaxClients の値に注意) | Typemiss.netの後,LinuxのCopy On Writeについて調べてみました。 このエントリではLinuxのCopy On Writeの挙動を簡単に説明し,mod_perlやFastCGI環境の場合に,どういうことがおこっているのか,どうすればそのような環境でメモリを節約できるのかについて説明してみます。・・・あまり分かりやすくなっていないかもしれませんが。

Link: Tcool.org

|
Tcool.org Catalyst関係のドキュメントの翻訳をされてる方です。 Catalyst advent calenderの目次は独自に作ったサマリになってて素晴らしいです。

Link: Andy Grundman / Catalyst-5.62 - search.cpan.org

|
Andy Grundman / Catalyst-5.62 - search.cpan.org 久しぶりに大きく更新しているなぁ。 YAMLを本体でサポート? 例外メッセージの捕捉用にクラスとメソッドを追加? REDIRECT_URL support? うーん。調べてみたい。が,後で・・・

Link: Catalyst-Plugin-Dumper-0.000002

| |
Catalyst-Plugin-Dumper-0.000002     - changed version syntaxt away from qv() since CPAN and g-cpan don't seem happy あらら。g-cpanがqv()を使ったモジュールバージョンを上手く扱えない問題で,CPANモジュール側で対処してるな。 実は単にg-cpanがバージョン番号外してパッケージ名取ってくるところの正規表現に"v?"とつけるだけなんだけど。 bugs.g.oにでも放り込もうかなぁ・・・と思いつつ,g-cpanの開発体制が分からないので躊躇している

Task::Catalyst

|
ふむ。最初はなんじゃそりゃ? と思ったけど,Taskモジュールの説明を見て分かった。単なるBundle::*の置き換えだそうだ。 Bundle::*がg-cpan.plで正しく動作しないという問題があったので試してみたが,Task::*だとうまく行く。 実装面ではどう違うのかは良く分からないけど・・・Module::Installベースになってどうこう,だそうで。

Catalyst-5.54 vs Catalyst-5.33 FCGI版

|
Catalyst-5.54(もうこんなに上がってるし)を入れてしまったので 試してみよう。 5.54(5.33のwelcomeを表示するように変更) Concurrency Level: 1 Time taken for tests: 39.184144 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Keep-Alive requests: 10000 Total transferred: 1720000 bytes HTML transferred: 480000 bytes Requests per second: 255.21 [#/sec] (mean) Time per request: 3.918 [ms] (mean) Time per request: 3.918 [ms] (mean, across all concurrent requests)
コンテンツのシンジケート