私は共有ホスティングを使用しています。プロセスの量はますます増えています。 ps aux
を調べると、毎日約2つの<defunct>
プロセスがlsphp
ということがわかりました。今では総数は40以上で、このホスティングには100プロセスのハードキャップがあり、私は心配しています。共有ホスティングでゾンビPHPプロセスを扱う
これらのプロセスの実行TIME
が0:29
または0:30
であることに気付きました。これは、これらが実行時間を使い果たすプロセスであることを私に疑わせる。私のサイトでは、最も遅いスクリプトが3〜5秒と30秒実行されるため、プロセスがハングアップして継続しないことを知るのに十分なギャップを与えているように思えるので、このコードを手動で設定します(ini_set('max_execution_time', 30);
)。 。しかし、これは逆効果しているようだ。
私はアプリケーションログを調べました。ハングしたプロセス(少なくとも制限時間を超過したもの)は、最も長いDomPDFのものです。私の推測では、ユーザーがPDFを要求しているにもかかわらず、PDFが準備され、答えが送信されていて、これが何らかの理由でプロセスをアイドル状態にしてしまう前に接続を閉じるとか... DomPDF自体はこの状態になりますか?
原因は何でしょうか?これを解決するために私は何ができますか?
何らかの形で(PHPスクリプトを変更して)これらのプロセスが脅かされるのを防ぐことはできますか?プロセスを強制終了する機会がありますか(マシンを再起動するか、親プロセスを強制終了する権利はありません)。