php-fpm の動作原理とモードの簡単な紹介

不言
リリース: 2023-04-05 13:06:02
転載
3431 人が閲覧しました

この記事では、php-fpm の動作原理とモードについて簡単に紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。

動作原理:

cgi 初期化フェーズ: fcgi_init() 関数と sapi_startup() 関数をそれぞれ呼び出し、プロセス信号を登録し、sapi_globals グローバル変数を初期化します。

php 環境初期化フェーズ: cgi_sapi_module.startup によってトリガーされます。実際には php_cgi_startup 関数が呼び出され、php_cgi_startup が内部で php_module_startup を呼び出して実行されます。 php_module_startup の主な機能: a). PHP 設定をロードして解析する; b). PHP モジュールをロードして関数シンボル テーブル (function_table) に記録する; c). zend 拡張機能をロードする; d). 無効な関数とクラス ライブラリ設定を設定する; e). メモリ回復メソッドを登録します;

php-fpm 初期化フェーズ: fpm_init() 関数を実行します。 php-fpm.conf ファイル構成の解析、プロセス関連パラメータ (プロセスが開くことができるファイルの最大数など) の取得、プロセス プールとイベント モデルの初期化、およびその他の操作を担当します。

php-fpm 実行フェーズ: fpm_run() 関数を実行すると、実行後にメイン プロセスがブロックされます。このフェーズは、フォーク子プロセスとループ イベントの 2 つの部分に分かれています。 fork の子プロセス部分は fpm_children_create_initial 関数によって処理されます (注: オンデマンド モードは fpm_pctl_on_socket_accept 関数で作成されます)。ループ イベント部分は fpm_event_loop 関数を通じて処理されます。この関数は内部の無限ループであり、イベントの収集を担当します。

実行モード

php-fpm は、静的、オンデマンド、動的という 3 つの実行モードをサポートしています。デフォルトは動的です。

static: 静的モード。起動時に固定ワーカー プロセスが割り当てられます。

ondemand: オンデマンドで割り当て、ユーザーリクエストを受信したときにワーカープロセスをフォークします。 ondemand: オンデマンドで割り当て、ユーザーリクエストを受信したときにワーカープロセスをフォークします。

dynamic: 動的モード。起動時に固定プロセスが割り当てられます。リクエスト数の増加に応じて、設定された変動範囲内でワーカー プロセスを調整します

以上がphp-fpm の動作原理とモードの簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート