ホームページ  >  記事  >  バックエンド開発  >  linux - php-fpm.conf パラメータ process_control_timeout は何を意味しますか?

linux - php-fpm.conf パラメータ process_control_timeout は何を意味しますか?

WBOY
WBOYオリジナル
2016-10-10 11:56:251379ブラウズ

百度を通じて原文を読んで中国語に翻訳します
process_control_timeout = 0

メインプロセスからの再利用シグナルを受け入れるための子プロセスのタイムアウトを設定します。 使用可能な単位: s (秒)、m (分)、h (時間)、または d (日) デフォルトの単位: s (秒)。値: 0

子プロセスはメインプロセスの再利用シグナルを受け取ります。再利用シグナルは何を意味しますか?
URL リクエストが nginx によって処理され、php-fpm に渡されるとき、このプロセス全体の原理は何ですか?プロセスには複数のリクエストが含まれる場合があります。それについて教えていただける専門家はいますか? よろしくお願いします。

返信内容:

百度を通じて原文を読んで中国語に翻訳します

process_control_timeout = 0

メインプロセスからの再利用シグナルを受け入れるための子プロセスのタイムアウトを設定します。 使用可能な単位: s (秒)、m (分)、h (時間)、または d (日) デフォルトの単位: s (秒)。値: 0

子プロセスはメインプロセスの再利用シグナルを受け取ります。再利用シグナルは何を意味しますか?

URL リクエストが nginx によって処理され、php-fpm に渡されるとき、このプロセス全体の原理は何ですか?プロセスには複数のリクエストが含まれる場合があります。それについて教えていただける専門家はいますか? よろしくお願いします。

まず、PHP リクエスト処理プロセスについて簡単に説明しましょう。

Nginx と PHP 間の対話は CGI インターフェイスに依存しています。両方とも CGI インターフェイスを実装しているため、Nginx は受信したリクエストを PHP に渡し、PHP から対応する結果を取得してクライアントに送り返すことができます。

最も基本的な CGI 実装は、リクエストごとに新しい PHP プロセスを作成し、処理が完了したらプロセスを閉じるというものですが、この方法はプロセスの開始と終了に多くのリソースを消費するため、あまり効率的ではありません。
その後、FastCGI 実装方法が登場しました。つまり、プロセスを開始して複数のリクエストを処理させてからプロセスを閉じるという方法で、リクエストごとにプロセスを開いたり閉じたりする問題を解決します。ただし、FastCGI には欠点があります。つまり、プロセスは同時に 1 つのリクエストしか処理できないため、複数のリクエストを同時に受信した場合、キューに登録して FastCGI プロセスによる処理を待つことしかできません。
FastCGI が同時に 1 つのリクエストしか処理できない問題を解決する方法は、複数の FastCGI プロセスを開始することです。ただし、複数の FastCGI プロセスが開かれる場合、いくつのプロセスを開く必要があるか、必要に応じてリクエストをこれらのプロセスに割り当てる方法など、これらのプロセスに関する管理上の問題が発生します。 PHP-FPM は、FastCGI プロセスを管理する管理プログラムです。 Nginx はまずリクエストを PHP-FPM に渡し、次に PHP-FPM が処理に適切な FastCGI 処理プロセスを選択します。

PHP-FPM がリクエストを FastCGI 処理プロセスに渡すとき、プロセスの再利用が含まれます。原則として、PHP-FPM は、リクエストを処理するためにアイドル状態の FastCGI プロセスを選択します。処理する前に、PHP-FPM は FastCGI プロセスにプロセス再利用信号を送信し、FastCGI プロセスがリクエストを受け入れて処理できるように準備します。ただし、FastCGI プロセスは常にリクエストを処理できるわけではありません。つまり、プロセスの再利用信号 (アニメーションの一時停止など) に応答できないため、このパラメーターは、PHP-FPM がプロセスの再利用に応答するために FastCGI プロセスを放置する時間を示します。シグナルがタイムアウトした場合、PHP-FPM はリクエストを処理するために他の方法 (他の FastCGI プロセスの使用など) を選択します。

fpm (fastcgi プロセス マネージャーの正式名) は、fastcgi の管理に特化しています

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。