php-fpm プロセス プール構成のパフォーマンス最適化オプション
PHP は非常に人気のあるプログラミング言語であり、Web 開発で広く使用されています。 php-fpm は、PHP が提供する FastCGI プロセス マネージャーであり、サーバー リソースを最大限に活用し、パフォーマンスを向上させることができます。この記事では、php-fpm プロセス プール構成を最適化して PHP アプリケーションのパフォーマンスを向上させる方法を紹介します。
1. 基本概念
php-fpm プロセス プール構成を最適化する方法を理解する前に、いくつかの基本概念を理解する必要があります。
1. プロセスプール: php-fpm はプロセスプールを通じて PHP インタプリタのプロセスを管理します。プロセス プールは php-fpm 作業の基本単位であり、各プロセス プールにはマスター プロセスと複数のワーカー プロセスがあります。
2. マスター プロセス: ワーカー プロセスの作成、破棄、再起動の管理を担当します。
3. ワーカープロセス: クライアントリクエストの処理とPHPスクリプトの実行を担当します。
2. プロセス プールの設定
php-fpm のプロセス プール設定ファイルは、重要なパフォーマンス最適化ツールです。サーバーのリソース状況やアプリケーションのニーズに応じて、プロセス プールの構成を調整できます。一般的に使用されるプロセス プール構成オプションの一部を次に示します。
pm 構成アイテムは、プロセス管理メソッドを指定するために使用されます。一般的に使用される値は次のとおりです:
- static
: 静的モード、リクエストを処理するために固定数のワーカー プロセスを開始します;
- dynamic
: 動的モード、それに応じて動的リクエストの数に合わせてワーカー プロセスの数を調整します。
- ondemand
: オンデマンド モード。必要な場合にのみワーカー プロセスを開始します。
pm 構成項目の値は、プロセス プールのパフォーマンスに影響します。静的方式はリクエスト量が安定しており、プロセスの頻繁な作成や破棄を避けることができる環境に適しており、動的方式はリクエスト量の変動が大きい環境に適しており、リクエストに応じてプロセス数を自動的に調整できます。オンデマンド方式はリクエスト量が少ない環境に適しており、必要に応じてプロセスを開始できます。
pm.max_children 設定項目は、ワーカープロセスの数を制限するために使用されます。この値の設定は、サーバのリソース状況に応じて調整する必要があります。設定が高すぎるとメモリを占有しすぎてシステム負荷が高くなりすぎ、設定が低すぎると要求が時間内に処理されなくなります。
pm.start_servers 構成アイテムは、最初に開始されたワーカー プロセスの数を指定するために使用されます。リクエスト量が多い場合は、この値を適切に増やすことでパフォーマンスを向上させることができます。この値は pm.max_children の 1/3 に設定することをお勧めします。
pm.min_spare_servers および pm.max_spare_servers 構成アイテムは、範囲を設定するために使用されます。アイドル状態のワーカー プロセスの数。アイドルプロセスの数が pm.min_spare_servers より少ない場合、php-fpm は新しいワーカープロセスを開始し、アイドルプロセスの数が pm.max_spare_servers より多い場合、php-fpm は余分なワーカープロセスを破棄します。これら 2 つの値を適切に設定すると、サーバー リソースの無駄を回避できます。
3. 設定例
以下は、php-fpm プロセス プール設定ファイルの例です。
[global] pid = /var/run/php-fpm.pid error_log = /var/log/php-fpm.log log_level = warning [www] listen = /var/run/php-fpm.sock listen.owner = www-data listen.group = www-data listen.mode = 0660 listen.backlog = 511 user = www-data group = www-data pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20 request_terminate_timeout = 60s request_slowlog_timeout = 0s slowlog = /var/log/php-fpm-slow.log rlimit_files = 1024 rlimit_core = 0 catch_workers_output = yes pm.status_path = /status ping.path = /ping ping.response = pong
上記の設定ファイルでは、 pm を Dynamic として指定し、 pm を設定します。 max_children は 50 であり、スタートアップ プロセスとアイドル プロセスの対応する数の範囲により、パフォーマンスが向上します。
結論: php-fpm プロセス プール構成を最適化すると、PHP アプリケーションのパフォーマンスを向上させることができます。サーバーのリソース状況とアプリケーションのニーズに応じて、プロセス管理方法とプロセス数を合理的に調整することで、より優れたパフォーマンスとリソース使用率を実現できます。
以上がphp-fpm プロセス プール構成のパフォーマンス最適化オプションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。