[PHP-users 21658]Re: Apacheのメモリー使用量について

Kazuki Nakajima nakajima @ nnd.jp
2004年 5月 13日 (木) 14:26:06 JST


中嶋です。

以前に質問したのは多分僕だと思います。

僕の場合は、.jpgファイルを表示させるようなスクリプトを使用した際、そのページ
がリクエストされる度にどんどんapacheのメモリ使用量が増加していくという現象で
した(ファイルサイズが大きかったのでメモリ消費が顕著でした)。

僕の解決策は、

・MaxRequestPerChildをある程度の値まで低くし、プロセスを循環させることでメモ
リを開放する
・MaxMemFreeで最大メモリ使用量を制限する

の2点です。

あとは値をどう最適化していけば、たいていの場合うまく動作するんじゃないかと思
います。

結果的にはこれでメモリ使用率高騰の問題は収束するんですが、いかんせんPHPの方
でメモリ開放してるはずなのに、、という疑問が未だに払拭されていません。

Aapache, PHPのメモリのアロケートのロジックがいまいちよく理解できていないため
なんですが、もしこのあたりに明るい方がいらっしゃれば是非ご教授いただきたいで
す。


> テスト環境:
> Apache1.3.31 PHP4.3.6 Mysql 4.0.17-nt windows2000 SP4 メモリ512MB P4 
> 2GHz
> Apache2.0.4.9 PHP4.3.6 Mysql 4.0.17-nt windows2000 SP4 メモリ512MB P4 
> 2GHz
>
> 以前にも同様のことが質問事項としてあったようですが、
> PHPをApacheのモジュールとして動作させ、Mysqlにクエリを発行し認証をおこなうス
> クリプトを作成しております。
> スクリプトは3つのクエリ順番に発行し戻り値がTrueのときのみ次のクエリを発行す
> るようにし無駄がおこらないようにしております。
> Web Application Stress Tool を使用しストレスをかけるとApacheのメモリが64MB
> 使用しアクセスが終了した後も一向にメモリ使用量が減ることはありません。
> Apacheを再起動するともとの状態にもどるのですが、このままだといつかスワップを
> 起こしかねません。
> CGI形式で実行すると別にPHP.EXEが発生するので、Apacheのメモリ使用量は増加する
> ことはありませんでした。
> スクリプトの問題かと思い、クエリを保存している変数をMYSQL_FREE_REZULT()で強
> 制的にクリアしても結果は同じでした。
>
> Apacheがメモリリークをしているとは考えにくいのですが、やはりWindows環境でPHP
> のモジュール動作は不安定なのでしょうか?
> Apacheを自動で再起動するスクリプトを書いて回避するか、CGI形式で実行するよう
> にするしかないのでしょうか?
> これはApache1、Apache2でも結果は同じです。
>
> _________________________________________________________________
> メッセンジャーで総額1億円プレゼント! http://im.msn.co.jp/home.htm
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>



PHP-users メーリングリストの案内