VestaCP phpfcgid テンプレート構成プロセスの最適化マルチメモリの枯渇 500 エラー

VestaCP WEB サービスが「phpfcgid」テンプレートを選択した後、多数の PHP-CGI プロセスにより、メモリがすぐに使い果たされます。

  • サーバーを再起動した後、基本的に数時間メモリが不足していました。
  • 以前アイドル状態だった PHP-CGI プロセスは強制終了されず、1 つのプロセスが 20 近くのサブプロセスを実行し、少なくとも 100M のメモリを消費します。

SSHで使用 htop コマンド(インストールが必要)、このステータスを表示できます▼

VestaCPウェブサービスに「phpfcgid」テンプレートを選択した後、多数のPHP-CGIプロセスによってメモリがすぐに枯渇した。

htop コマンドを使用したときに「-bash: htop: コマンドが見つかりません」というエラー メッセージが表示される場合は、このチュートリアルで解決方法を確認してください ▼

PHP-CGI プロセスの数が多いと、メモリがすぐに使い果たされます。問題は VestaCP にあります。CentOSのphpfcgid テンプレートでは、最適化されていない構成が使用されています。

  • phpfcgid テンプレートの VestaCP では、1 つの PHP-CGI プロセスを設定して、最大 20 の子プロセスを実行します。

見る /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh ファイルの 13 行目:

export PHP_FCGI_CHILDREN=20

ただし、このような設定は、PHP サブプロセス管理ドキュメントの Apache の警告に違反しています。

PHP 子プロセス管理 (PHP_FCGI_CHILDRENmod_fcgid は、生成されたアプリケーション プロセスに一度に XNUMX つのリクエストのみをルーティングします; したがって、PHP によって作成された子プロセスは効果的に使用されません. (さらに、PHP 子プロセスは適切に終了されない場合があります。 .) デフォルトで、環境変数の設定を使用 PHP_FCGI_CHILDREN=0、PHP 子プロセス管理が無効になっています。

Apache の mod_fcgid モジュールでは、PHP-CGI プロセスは一度に XNUMX つの要求にしか応答して実行できないため、PHP-CGI 子プロセスは非常に非効率的です。

そのため、PHP サブプロセス管理の設定を直接無効にする必要があります ▼

PHP_FCGI_CHILDREN=0

同時に、すでに生成された仮想ホストがある場合は、すべての Web サイトの構成ファイルを変更する必要があります ▼

/home/用户名/web/域名/cgi-bin/fcgi-starter

fcgi-starter 設定ファイルを開いた後、以下を挿入 ▼

export PHP_FCGI_CHILDREN=20

▼に変更

export PHP_FCGI_CHILDREN=0
  • 変更後、PHP サブプロセス管理は mod_fcgid モードでオフになります。
  • PHP-CGI プロセスは子プロセスを生成しなくなり、多くのメモリを節約できます。

また、VestaCP はアイドル プロセスの終了メカニズムを設定しません。

  • 新しく実行されたすべての PHP-CGI プロセスは、システムが再起動されるまでメモリを使用し続けます。

これを修正するには、mod_fcgid 設定ファイルを追加するだけです /etc/httpd/conf.d/fcgid.conf ▼に以​​下の設定を追加

FcgidIdleTimeout 120
  • 2 分間 (120 秒) アイドル状態の PHP-CGI プロセスを自動的に強制終了するように Apache を設定します。

セットアップ完了後、Apacheサービスを再起動▼

service httpd restart

サービスを再起動すると、以前は HTOP に表示されていた数百の PHP-CGI プロセスが表示されなくなります。

通常、30 人の Vesta CP ユーザーの 40 つの PHP-CGI プロセスは、XNUMX ~ XNUMXM のメモリを消費します。Linuxホスト要件。

そのため、ウェブサイト人はうまくやりたいSEO、Vesta CP とテンプレートの構成を最適化することは非常に重要です ^_^

VestaCP パネルで次のチュートリアルを見ることができます ▼

Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ ) は、「VestaCP phpfcgid テンプレート構成プロセスの複数のメモリ不足 500 エラーの最適化」を共有しました。これは役に立ちます。

この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-735.html

さらに多くの隠されたトリックのロックを解除するには、Telegram チャンネルにぜひご参加ください。

気に入ったらシェアして「いいね!」してください!あなたのシェアと「いいね!」が私たちの継続的なモチベーションです。

 

发表评论

バグのあるボックスの内容は公開されません。 必須アイテム * 标注

上へスクロール