php-fpmのmax_children設定の詳細説明
現在、nginx fpm は基本的に主流の構成になっていますが、その中でも pm.max_chindren の構成がより重要です。
まず、次の設定に注目します。 pm = static/dynamic
,
このオプションは、fpm サブプロセスの生成モードを識別します:
static: は、fpm の実行時に直接フォークアウトすることを意味します pm.max_chindren
ワーカー プロセス
dynamic: は、start_servers
プロセスがフォークアウトされることを意味します実行時、負荷に応じて動的に調整されますが、max_children プロセスを超えることはありません。
通常、静的を使用することをお勧めします。利点は、負荷状況を動的に判断する必要がなく、パフォーマンスが向上することです。欠点は、より多くのシステム メモリ リソースを消費することです。
上記は、max_chindren によって表されるワーカー プロセスの数を示しています。一般に、この構成で同時に処理できる同時実行性が高くなると考えられていますが、これは比較的大きな誤解です:
- #1) 実際には、より多くのプロセスが存在し、プロセスのコストが増加します。はい、同時に実行できる fpm プロセスの数は CPU の数を超えることはありません。より多くのワーカーを開くことで QPS が向上するというのは間違った理解であり、より多くのプロセスを開くと処理用の CPU が増えるという意味ではありません。
- 2) ワーカー プロセスが少なくなります。サーバーがビジー状態の場合、nginx がデータを fpm にヒットさせます。すべてのワーカーが動作しており、リクエストを受け入れるアイドル状態のワーカーがないことがわかります。したがって、結果は 502 になります。
- 3) 実際のビジネスでは、データベースの読み取りや内部 RPC 呼び出しなど、多くの I/O 操作が発生するため、I/O を待機している間、プロセスはシステムによってスリープ状態になります。および CPU を占有しません。構成されているワーカーの数が少ない場合、CPU は使用されません。
それでは、ワーカーの数はどのように構成すればよいでしょうか?
理論的には、ワーカー プロセスの数 = CPU の数が最も合理的ですが、ポイント 2 により、各ワーカーがリクエストの処理を完了していない可能性があるため、502 が頻繁に発生します。ただし、より多くのプロセスを開くことは、502 を回避してリクエストを一時的にハングすることを意味しますが、これはそれを軽減する方法にすぎず、実際には、これはシステムの同時実行性を高めるだけでなく、システムの負荷も増加させます。 2 と 3 に基づいて、適切な数のワーカーを設定することの方が重要です。
世界で唯一、速い武道は、プログラムの効率を可能な限り高め、一回のリクエストの時間を最小限に圧縮することです。一人のワーカーが短縮され、単位時間で処理できるようになり、当然リクエストも増えました。
そして、max_children
の数は、各ワーカーが単位時間内に処理するリクエストの数によって推定できます。最大のリクエストの処理時間 (xhprof の CPU 時間) が 100 ミリ秒以内で、100 ミリ秒以内に 100 個のリクエストが同時に受信される場合、理論的には、最初にリクエストをハングするように 100 個のワーカー プロセスを構成する必要があります。
ただし、最大リクエスト時間は多くの外部環境の影響を受ける可能性があり、特にネットワーク I/O も含まれるため、推定するのが困難です。このタイプの xhprof などのサードパーティのプロファイル ツールを借用することもできます。このツールは、CPU 時間の消費をカウントできます。この期間中の実際のワーカー数を計算することは、合計時間を計算するよりもはるかに合理的です。実際、ここには max_children 数値を構成するためのショートカットがあります。これは、早い段階で max_childnren を設定することです。しばらく安定して動作させた後、fpm のステータスで 最大アクティブプロセス数
を観察し、それよりも大きくなるように max_children を設定すれば問題ありません。
関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで
以上がphp-fpmのmax_children設定の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









php-fpm を使用して高パフォーマンスのチューニングを行う方法 PHP は、Web アプリケーションや動的 Web サイトの開発に広く使用されている、非常に人気のあるサーバーサイド スクリプト言語です。ただし、トラフィックが増加すると、PHP アプリケーションのパフォーマンスが低下する可能性があります。この問題を解決するには、php-fpm (FastCGIProcessManager) を使用して高性能チューニングを行うことができます。この記事では、php-fpm を使用して PHP アプリケーションのパフォーマンスを向上させる方法とコード例を紹介します。 1つ、

PHP-FPM 最適化を使用して PrestaShop アプリケーションのパフォーマンスを向上させる方法 電子商取引業界の急速な発展に伴い、PrestaShop は多くの販売者に選ばれる電子商取引プラットフォームになりました。ただし、ストアのサイズが大きくなり、訪問数が増加すると、PrestaShop アプリケーションはパフォーマンスのボトルネックに遭遇する可能性があります。 PrestaShop アプリケーションのパフォーマンスを向上させるための一般的な方法は、PHP-FPM を使用してアプリケーションの処理能力を最適化および向上させることです。 PHP-FPM (高速CGI)

PHP-FPM 最適化を使用して WooCommerce アプリケーションのパフォーマンスを向上させる方法 概要 WooCommerce は、WordPress Web サイトでオンライン ストアを作成および管理するための非常に人気のある e コマース プラグインです。ただし、ストアが成長し、トラフィックが増加すると、WooCommerce アプリが遅くなり、不安定になる可能性があります。この問題を解決するには、PHP-FPM を使用して、WooCommerce アプリケーションのパフォーマンスを最適化および向上させることができます。 PHP-FPとは

データベース アクセスのパフォーマンスを向上させるための php-fpm 接続プールの使用の概要: Web 開発において、データベース アクセスは最も頻繁で時間のかかる操作の 1 つです。従来の方法では、データベース操作ごとに新しいデータベース接続を作成し、使用後に接続を閉じます。この方法では、データベース接続の確立と終了が頻繁に発生し、システムのオーバーヘッドが増加します。この問題を解決するには、php-fpm 接続プール テクノロジを使用してデータベース アクセスのパフォーマンスを向上させることができます。接続プールの原理: 接続プールは、一定数のデータベースを組み合わせたキャッシュ技術です。

PHP-FPM は、PHP のパフォーマンスと安定性を向上させるために一般的に使用される PHP プロセス マネージャーです。ただし、高負荷環境では、PHP-FPM のデフォルト設定ではニーズを満たせない場合があるため、チューニングが必要です。この記事では、PHP-FPM のチューニング方法を詳しく紹介し、いくつかのコード例を示します。 1. プロセスの数を増やす デフォルトでは、PHP-FPM はリクエストを処理するために少数のプロセスのみを開始します。高負荷環境では、プロセス数を増やすことで PHP-FPM の同時実行性を高めることができます。

PHP-FPM 最適化を使用して Phalcon アプリケーションのパフォーマンスを向上させる方法 はじめに: Phalcon は高性能 PHP フレームワークであり、PHP-FPM と組み合わせるとアプリケーションのパフォーマンスをさらに向上させることができます。この記事では、PHP-FPM を使用して Phalcon アプリケーションのパフォーマンスを最適化する方法を紹介し、具体的なコード例を示します。 1. PHP-FPMPとはHP-FPM (PHPFastCGIProcessManager) はWebサーバーから独立したPHPプロセスです

php-fpmとは何ですか?次の記事では、php-fpm について理解し、php-fpm を最適化する際に何を最適化する必要があるかを紹介します。

php-fpm を使用しない Ubuntu の解決策: 1. 「sudo apt-get」コマンドを実行して PHP のソース アドレスを追加します; 2. php7 パッケージがあるかどうかを確認します; 3. 「sudo apt-get install」を実行して PHP をインストールします" コマンド; 4. nginx リクエストを処理するためにポート 9000 でリッスンするように設定を変更します。 5. 「sudo service php7.2-fpm start」を通じて「php7.2-fpm」を起動します。
