検索

php-fpm静的動的

Apr 19, 2018 am 09:22 AM
phpphp-fpm静的

この記事では主に php-fpm の静的側面と動的側面を紹介し、参考として提供します。

php-fpmのstaticdynamicの実行方法の比較を見てみましょう
少し前にphp-fpmを設定したときに、2つの実行方法があることを偶然発見しました。 Apacheと同様に、プロセス数も設定に応じて動的と静的に分けることができます。
php-fpm には 2 つの方法があります。1 つは、リクエストが発生したときに、指定した数の php-fpm プロセスを直接開く方法です。量が多くなるとphp-fpmのプロセス数を動的に上限まで増やし、アイドル状態の場合はアイドル状態のプロセス数を下限まで自動的に解放します。
これら 2 つの異なる実行方法は、サーバーの実際のニーズに応じて調整できます。
最初に、これに関連するいくつかのパラメーターについて説明します。それらは、pm、pm.max_children、pm.start_servers、pm.min_spare_servers、および pm.max_spare_servers です。
pm は使用方法を意味し、静的または動的の 2 つの値から選択できます。古いバージョンでは、動的は Apache のようなものと呼ばれていました。構成ファイルに記載されている指示に注意してください。
次の 4 つのパラメータは次のことを意味します:

  1. pm.max_children: 静的モードで開かれた php-fpm プロセスの数。

  2. pm.start_servers: 動的モードで開始する php-fpm プロセスの数。

  3. pm.min_spare_servers: 動的モードでの php-fpm プロセスの最小数。

  4. pm.max_spare_servers: 動的モードでの php-fpm プロセスの最大数。

dm が static に設定されている場合、パラメーター pm.max_children のみが有効になります。システムは、設定された数の php-fpm プロセスを開きます。
dm が動的に設定されている場合、pm.max_children パラメーターは無効になり、次の 3 つのパラメーターが有効になります。 php-fpm の実行が開始されると、システムは pm.start_servers php-fpm プロセスを開始し、システムのニーズに応じて pm.min_spare_servers と pm.max_spare_servers の間で php-fpm プロセスの数を動的に調整します。
それでは、どの実行方法がサーバーに適しているのでしょうか?実際、Apache と同様、私たちが実行する PHP プログラムでは、実行後に多かれ少なかれメモリ リークが発生します。これは、php-fpm プロセスが最初は約 3M のメモリしか占有せず、一定期間実行すると 20 ~ 30M に増加する理由でもあります。したがって、動的方法は冗長なプロセスを終了し、一部のメモリをリサイクルして解放できるため、メモリの少ないサーバーまたは VPS で使用することをお勧めします。具体的な最大量はメモリ/20M に基づいて取得されます。たとえば、512M VPS の場合、pm.max_spare_servers を 20 に設定することをお勧めします。 pm.min_spare_servers については、サーバーの負荷に応じて 5 ~ 10 の間で設定することをお勧めします。
また、比較的大きなメモリを備えたサーバーの場合は、静的に設定すると効率が向上します。 php-fpmのプロセスを頻繁に切り替えるとラグが発生するため、メモリに余裕がある場合はstatic機能をオンにした方が良いでしょう。メモリ/30Mに応じた数量も取得できます。たとえば、2GB メモリを搭載したサーバーは 50 に設定でき、4GB メモリを搭載したサーバーは 100 に設定できます。
このサイトは 512M VPS 上に構築されているため、設定したパラメータは次のとおりです:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
以上ですメモリを最大限に節約し、実行効率を向上させます。
各パラメータの説明を以下に示します:
pm string
プロセスマネージャーが子プロセスを管理する方法を設定します。使用可能な値: 静的、オンデマンド、動的。設定する必要があります。
static - 子プロセスの数は固定されています (pm.max_children)。
ondemand - 要求があるときにプロセスが生成されます (動的とは逆に、要求されたとき、サービスの開始時に pm.start_servers が開始されます。
dynamic - 子プロセスの数は、次の構成に基づいて動的に設定されます: pm.max_children, pm .start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm.max_children int
pm が static に設定されている場合、作成される子プロセスの数を示します。 pm が Dynamic に設定されている場合、作成される子プロセスの最大数を示します。このオプションは、Apache の mpm_prefork および通常の PHP FastCGI の PHP_FCGI_CHILDREN 環境変数の設定と同様に、同時に処理できるリクエストの数の制限を設定します。 .start_serversin
起動時にのみ作成される子プロセスの数を設定します。 デフォルト値: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers int
アイドル状態のサービス プロセスの最小数を設定します。
pm.max_spare_servers int
アイドル状態のサービスの最大数を設定します。pm が Dynamic に設定されている場合にのみ使用されます。
pm.max_requests int
各子の前に処理されるリクエストの数を設定します。これは、メモリ リークが発生する可能性のあるサードパーティ モジュールに役立ちます。「0」に設定すると、リクエストは常に受け入れられます。これは、PHP_FCGI_MAX_REQUESTS 環境変数と同等です。

php-fpm の

static

dynamic について、少し前に php-fpm を設定したときに、Apache と同様に、プロセスの数も動的と静的の 2 つに分けられることを偶然発見しました。 php-fpm には 2 つの方法があり、1 つは指定された数の php-fpm プロセスを増減しなくなり、もう 1 つは最初に特定の数の php-fpm プロセスを開始する方法です。リクエスト量が多くなると、php-fpmプロセス数が動的に上限まで増加し、php-fpmプロセス数がアイドル状態になると、自動的に下限値まで解放されます。実行方法は、サーバーの実際のニーズに応じて調整できます。 ここで関係するいくつかのパラメーターについて説明します。それらは、pm、pm.max_children、pm.start_servers、pm.min_spare_servers、および pm.max_spare_servers です。 pm は使用方法を意味し、静的または動的の 2 つの値から選択できます。古いバージョンでは、動的は Apache のようなものと呼ばれていました。構成ファイルに記載されている指示に注意してください。
次の 4 つのパラメータは次のことを意味します:



pm.max_children: 静的モードで開かれた php-fpm プロセスの数。

  1. pm.start_servers: 動的モードで開始する php-fpm プロセスの数。

  2. pm.min_spare_servers: 動的モードでの php-fpm プロセスの最小数。

  3. pm.max_spare_servers: 動的モードでの php-fpm プロセスの最大数。

dm が static に設定されている場合、パラメーター pm.max_children のみが有効になります。システムは、設定された数の php-fpm プロセスを開きます。
dm が動的に設定されている場合、pm.max_children パラメーターは無効になり、次の 3 つのパラメーターが有効になります。 php-fpm の実行が開始されると、システムは pm.start_servers php-fpm プロセスを開始し、システムのニーズに応じて pm.min_spare_servers と pm.max_spare_servers の間で php-fpm プロセスの数を動的に調整します。
それでは、どの実行方法がサーバーに適しているのでしょうか?実際、Apache と同様、私たちが実行する PHP プログラムでは、実行後に多かれ少なかれメモリ リークが発生します。これは、php-fpm プロセスが最初は約 3M のメモリしか占有せず、一定期間実行すると 20 ~ 30M に増加する理由でもあります。したがって、動的方法は冗長なプロセスを終了し、一部のメモリをリサイクルして解放できるため、メモリの少ないサーバーまたは VPS で使用することをお勧めします。具体的な最大量はメモリ/20M に基づいて取得されます。たとえば、512M VPS の場合、pm.max_spare_servers を 20 に設定することをお勧めします。 pm.min_spare_servers については、サーバーの負荷に応じて 5 ~ 10 の間で設定することをお勧めします。
また、比較的大きなメモリを備えたサーバーの場合は、静的に設定すると効率が向上します。 php-fpmのプロセスを頻繁に切り替えるとラグが発生するため、メモリに余裕がある場合はstatic機能をオンにした方が良いでしょう。メモリ/30Mに応じた数量も取得できます。たとえば、2GB メモリを搭載したサーバーは 50 に設定でき、4GB メモリを搭載したサーバーは 100 に設定できます。
このサイトは 512M VPS 上に構築されているため、設定したパラメータは次のとおりです:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
以上ですメモリを最大限に節約し、実行効率を向上させます。
各パラメータの説明を以下に示します:
pm string
プロセスマネージャーが子プロセスを管理する方法を設定します。使用可能な値: 静的、オンデマンド、動的。設定する必要があります。
static - 子プロセスの数は固定されています (pm.max_children)。
ondemand - 要求があるときにプロセスが生成されます (動的とは逆に、要求されたとき、サービスの開始時に pm.start_servers が開始されます。
dynamic - 子プロセスの数は、次の構成に基づいて動的に設定されます: pm.max_children, pm .start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm.max_children int
pm が static に設定されている場合、作成される子プロセスの数を示します。 pm が Dynamic に設定されている場合、作成される子プロセスの最大数を示します。このオプションは、Apache の mpm_prefork および通常の PHP FastCGI の PHP_FCGI_CHILDREN 環境変数の設定と同様に、同時に処理できるリクエストの数の制限を設定します。 .start_serversin
起動時にのみ作成される子プロセスの数を設定します。 デフォルト値: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers int
アイドル状態のサービス プロセスの最小数を設定します。
pm.max_spare_servers int
アイドル状態のサービスの最大数を設定します。pm が Dynamic に設定されている場合にのみ使用されます。
pm.max_requests int
各子の前に処理されるリクエストの数を設定します。これは、メモリ リークが発生する可能性のあるサードパーティ モジュールに役立ちます。「0」に設定すると、リクエストは常に受け入れられます。これは、PHP_FCGI_MAX_REQUESTS 環境変数と同等です。

php-fpmプール、PHP低速実行ログ、open_basedir、php-fpmプロセス管理

php-fpm restart

以上がphp-fpm静的動的の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションに保存されているデータをどのように変更しますか?PHPセッションに保存されているデータをどのように変更しますか?Apr 27, 2025 am 12:23 AM

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

PHPセッションに配列を保存する例を示します。PHPセッションに配列を保存する例を示します。Apr 27, 2025 am 12:20 AM

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

Garbage CollectionはPHPセッションでどのように機能しますか?Garbage CollectionはPHPセッションでどのように機能しますか?Apr 27, 2025 am 12:19 AM

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

どのようにしてPHPでセッションアクティビティをトレースできますか?どのようにしてPHPでセッションアクティビティをトレースできますか?Apr 27, 2025 am 12:10 AM

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?Apr 27, 2025 am 12:02 AM

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。