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

VestaCPウェブサービスに「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_CHILDREN)は、mod_fcgidでは常に無効にする必要があります。mod_fcgidは、自身が生成したアプリケーションプロセスに一度に1つのリクエストしかルーティングしないため、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 プロセスが表示されなくなります。

通常、Vesta CPユーザー1人につき1つのPHP-CGIプロセスが消費するメモリは30~40MB程度であり、これはLinuxホストにとっては十分すぎる量です。

したがって、SEOで成果を上げたいオンラインマーケターにとって、Vestaのコンテンツとテンプレートの設定を最適化することは非常に重要です。

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

Chen Weiliang氏のブログ(https://www.chenweiliang.com/ )で公開されている記事「複数のプロセスによる500メモリ不足エラーに対するVestaCP phpfcgidテンプレート設定の最適化」が、皆様のお役に立てば幸いです。

この記事のリンクはご自由に共有してください:https://www.chenweiliang.com/cwl-735.html

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

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

 

发表评论

すでに* を記入ておく必要があります。

上へスクロール