[kansaipm] use & fork

SUGITA Toshinori sugita at d-pad.co.jp
Sat Oct 4 05:42:46 CDT 2003


杉田@デジタルパッドです。
Apache::Registryについて調べてみたので、それに関連して。

# From: SUGITA Toshinori <sugita at d-pad.co.jp>
# Subject: Re: [kansaipm] use & fork 
# Date: Sat, 04 Oct 2003 15:19:30 +0900 (JST)

> >  杉田さんのやりたいことがもう一つ具体的に掴めてないので、的はずれかもし
> > れませんが…。mod_perlのApache::Registryがまさにコンパイル結果をキャッシュ
> > しておいてパフォーマンスをよくするというアプローチだと思います。
> 
> なるほど、そのモジュールは知りませんでした。
> 一度調べてみます。

mod_perl + Apache::Registry について調べてみて、いくつか思い違いを
していたことがわかりました。

mod_perlってsystemやexecが使えないと思っていたのですが、勘違いのようですね。
先ほどだしたメールのその部分は、無視してください。(^^;

で、更に発生した疑問なんですが、mod_perlはapache上のモジュールとして
動作するわけですが、プロセス的には、どのような構成になるのでしょうか?

たとえば、fastcgiを使用した場合は、以下のようになっています。

  apache(ルートプロセス)
    + fastcgi(ルートプロセス) <-正しくは何と呼ぶのか知りませんが。。。
       + fastcgiスクリプト各プロセス
       + fastcgiスクリプト各プロセス
       + fastcgiスクリプト各プロセス
         .
         .
         .
    + apache(サブプロセス)
    + apache(サブプロセス)
    + apache(サブプロセス)
       .
       .
       .

これを見れば、各apacheサブプロセスに回されたリクエストから、
fastcgiの各プロセスに接続されて、リクエストを処理したあと、
apacheサブプロセスがクライアントに対してレスポンスを返すという
図式が(私の勝手な想像ですが)考えられます。

で、apache+mod_perlの場合もプロセスの動作を見てみたところ
以下のような感じで動いているようにみえます。
(判断の基準はpsコマンドで実行しながら追い掛けただけなので
  実際は違うのかも知れません)

1. apache(ルートプロセス)
    + apache(サブプロセス) + mod_perl
    + apache(サブプロセス) + mod_perl
    + apache(サブプロセス) + mod_perl
       .
       .
       .

これだと、apacheプロセスごとにmod_perlが使用する
プロセスがあることになるので、コンパイルがプロセス数分
行われることになります。これは私の望む動作ではありません。
(結局、基本的なところでfastcgiと特に変わるところがありません。)

やはり、複数プロセスでコンパイル結果をshareする(せめてshareして
いるように見せかける)のは無理なのでしょうか。。。
evalの結果をshere出来ないことを諦めれば、threadsが一番
希望するものに近いものができそうですが、こちらでは逆に
スレッド自身に伴う問題(共有メモリ、スレッドセーフ云々)が
恐いので。。。

既に、八方塞がりなのでしょうか。。。
今夜眠れなくなりそうです。

///////////////////////////////
 SUGITA Toshinori 杉田 敏典      Digital Pad Inc.    .・.         
   E-MAIL  : sugita at d-pad.co.jp                       ●・
   WebPage : http://www.d-pad.co.jp/
   メール・スクランブル http://www.d-pad.co.jp/mail/scramble/
   アンケートしよう!   http://www.d-pad.co.jp/enquete/make/
   有名人にメールしよう http://www.d-pad.co.jp/mail/fame/
   アクセス解析サービス http://www.d-pad.co.jp/inspect/



More information about the Kansai-pm mailing list