2017-01-02 24 views
1

私は共有ホスティングを使用しています。プロセスの量はますます増えています。 ps auxを調べると、毎日約2つの<defunct>プロセスがlsphpということがわかりました。今では総数は40以上で、このホスティングには100プロセスのハードキャップがあり、私は心配しています。共有ホスティングでゾンビPHPプロセスを扱う

これらのプロセスの実行TIME0:29または0:30であることに気付きました。これは、これらが実行時間を使い果たすプロセスであることを私に疑わせる。私のサイトでは、最も遅いスクリプトが3〜5秒と30秒実行されるため、プロセスがハングアップして継続しないことを知るのに十分なギャップを与えているように思えるので、このコードを手動で設定します(ini_set('max_execution_time', 30);)。 。しかし、これは逆効果しているようだ。

私はアプリケーションログを調べました。ハングしたプロセス(少なくとも制限時間を超過したもの)は、最も長いDomPDFのものです。私の推測では、ユーザーがPDFを要求しているにもかかわらず、PDFが準備され、答えが送信されていて、これが何らかの理由でプロセスをアイドル状態にしてしまう前に接続を閉じるとか... DomPDF自体はこの状態になりますか?

原因は何でしょうか?これを解決するために私は何ができますか?

何らかの形で(PHPスクリプトを変更して)これらのプロセスが脅かされるのを防ぐことはできますか?プロセスを強制終了する機会がありますか(マシンを再起動するか、親プロセスを強制終了する権利はありません)。

答えて

1

「共有ホスティング」以外のシステム構成については、何も教えてくれません。 が共有されているホスティングとは、その行動に多大な影響を及ぼすことはほとんどないということを意味します。最初にと話すべき人は、サービスプロバイダです。

PHPのプロセスは、CGIまたはfastCGI(または、god forbid、suPHP)として設定されていることを示しています。ゾンビプロセスがある理由は数多くありますが、サーバーの制限にはカウントされない場合があります(これは実装/強制の方法については言及していません)。スクリプトのいくつかで、あなたは、おそらくあなたははignore_user_abort(true)を持っている

  • へのアクセス権を持っていない
  • - あなたは時間制限を強制されるのFCGIプロセスマネージャのいくつかの並べ替えを持っている

    • :原因が考えていることです

    あなたのホスティングプロバイダと話をする。

    関連する問題