[PHP-users 14153] Memory leak in phpinfo()?

Sakamoto php-users@php.gr.jp
2003年 3月 21日 (金) 08:30:29 JST


こんにちは。
坂本(RisaPapa)です。

Win2000環境でAPACHE2/FastCGI対応のPHPを作成していますが、
テスト中にphpinfo()関数を使うとメモリー使用率が継続して増加するのを
確認しました。mod_phpでも同じように増加しています。
phpbb2/phpnuke/phpmyadminなどでのテストもしていますが、
これらはメモリの使用率は自動的に変動しながら作動します。
phpinfo()関数は変動なしで継続して増加しています。

FastCGIでPHPを運用する場合はfcgi_pm(プロセスマネージャ)が
一定条件(ランタイム/チャイルドプロセス数/WAIT_STATUS)により
PHPのプロセスを自動的にリロードしたり、mod_fastcgi側からリスタート
シグナルを送ってAPACHEのメインチャイルドプロセスをリスタートさせるので
それほど問題はないのですがmod_phpの場合はそのまま続けてメモリが
増加するので問題になるのではないかと思われます。

どなたかこんな経験していませんか?

<ETC>
去年の3月からFastCGI対応版PHPを作成しています。しかしオリジナル
バージョンはWIN2000/APACHE2でのFastCGIはまだ作動しません。
WIN環境用のプロセス生成ルーチンがApache1.3.xとは多く異なるため、
mod_fastcgiをAPACHE2に対応させるのが難しくなったからです。PHPの場合、
現在のmod_fastcgi/phpオリジナルバージョンで作動はするものの、
mod_fastcgi用の環境変数が正しくロードされない問題があります。
原因はAPACHE2ではUNICODEの環境変数に対応しているからです。
PHPのcgi_main.cファイルの作成に多く関わったShaneという人がFastCGIに
OS_SetImpersonateを追加しましたが、これにも問題がありました。
多分IIS用だと思いますが、APACHE2ではAPACHEがストップしても
FastCGI用のphpプロセスが死なないバグです。

とりあえずこれらの問題を解決したものを完成してテストしています。
来月中にAPACHE2/PERL/PHP/MySQL/ETCをパッケージしたものを
fastcgi.comのMLにてバイナリのみ公開する予定です。PERLは
5.6.0/5.8.0はメモリリークがあったため、perl-5.005_03バージョンを
mutithread用にしてperlcrt.libで再コンパイルしたものです。
MySQLはmysql-3.23.36を自分で今までバグやセキュリティ問題が
あるたびに修正しながら個人的にバージョンアップしてきたものです。
私としてはソースも一緒に公開したいのですが各ソフトの開発ポリシに
あまりかかわりたくないので公開しないつもりです。

RisaPapa




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