php-fpm 構成最適化の実践
はじめに:
php-fpm (FastCGI Process Manager) は、PHP の実行モードです。クライアントのリクエストを独立したプロセスとして処理し、より優れたパフォーマンスと安定性を提供します。 。ただし、php-fpm が適切に設定されていない場合、その利点を最大限に活用することはできません。この記事では、一般的な php-fpm 構成の最適化手法をいくつか紹介し、対応するコード例を示します。
php-fpm の設定ファイルでは、php-fpm のパフォーマンスを最適化するために、プロセス管理に関連するいくつかのパラメータを設定できます。以下に、一般的に使用される構成パラメータとそのサンプル コードを示します。
pm = dynamic ; 进程管理模式为动态模式,自动调整进程数量 pm.max_children = 50 ; 最大子进程数量为50个 pm.start_servers = 10 ; 启动时的子进程数量为10个 pm.min_spare_servers = 5 ; 最小空闲子进程数量为5个 pm.max_spare_servers = 20 ; 最大空闲子进程数量为20个
動的モードを使用すると、リクエストの数に応じてプロセスの数が自動的に調整され、php-fpm のパフォーマンスが向上します。同時に、起動時の子プロセスの数とアイドル状態の子プロセスの最小数と最大数を適切に調整することで、応答性を確保しながらシステム リソースを節約できます。
php-fpm プロセスは通常、メモリ、開いているファイルの数などのオペレーティング システム リソースにアクセスする必要があります。リソース制限パラメーターを適切に設定すると、リソース不足によって引き起こされるパフォーマンスの問題を回避できます。以下に、一般的に使用されるリソース制限パラメータとそのサンプル コードを示します。
pm.max_requests = 1000 ; 每个子进程处理的最大请求数量为1000个 rlimit_files = 1024 ; 进程可以同时打开的最大文件数为1024个 rlimit_core = unlimited ; 进程可以生成的core文件大小不限制
各子プロセスによって処理されるリクエストの数は重要なパラメータです。子プロセスが一定数のリクエストを処理した後、リソース リークやメモリの断片化を避けるために、子プロセスを再起動することでリソースを解放できます。同時に、プロセスが同時に開くことができるファイルの最大数とコアファイルのサイズ制限を適切に調整することで、php-fpm がより多くのリクエストを処理できるようになります。
php-fpm がリクエストを処理するとき、パフォーマンスと安定性を最適化するためにいくつかのパラメータを設定できます。以下に、一般的に使用されるリクエスト処理パラメータとそのサンプル コードを示します。
request_terminate_timeout = 60s ; 请求处理超时时间为60秒 request_slowlog_timeout = 5s ; 记录慢日志的请求处理时间阈值为5秒 slowlog = /var/log/php-fpm.slow.log ; 慢日志记录的文件路径
適切なリクエスト処理タイムアウトを設定すると、長時間にわたるリクエストによるプロセスのブロックを回避できます。同時に、低速ロギングのリクエスト処理時間のしきい値を設定し、低速ロギングのファイル パスを指定して、低速クエリとパフォーマンスのボトルネックを特定することができます。
結論:
php-fpm の設定パラメータを調整することで、php-fpm のパフォーマンスと安定性を最適化できます。プロセス管理パラメータ、リソース制限パラメータ、およびリクエスト処理パラメータを適切に設定すると、クライアントのリクエストに対する応答能力が向上し、リソース不足やパフォーマンスの問題を回避できます。上記は一般的な最適化手法とサンプルコードですので、皆様のお役に立てれば幸いです。
参考リンク:
以上がphp-fpm構成の最適化の実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。