php-fpm静的動的

Apr 19, 2018 am 09:22 AM
php php-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 までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

See all articles