php-fpm パフォーマンスの監視とチューニング戦略
はじめに:
インターネットの発展に伴い、PHP は効率的なサーバーサイド スクリプト言語として Web 開発の分野で広く使用されています。 PHP 実行環境のソリューションとして、php-fpm は高い同時処理能力を備えています。ただし、同時実行性が高い場合、php-fpm はパフォーマンスのボトルネックに直面します。この記事では、php-fpm のパフォーマンスと安定性を向上させることを目的とした、php-fpm のパフォーマンスの監視とチューニングの戦略を紹介します。
1. php-fpm パフォーマンス監視
1.1 top コマンドは php-fpm プロセスを監視します
top コマンドを使用して、php-fpm プロセスの CPU およびメモリ消費量を監視できます。 php-fpmプロセス。 top コマンドを使用すると、プロセス ID、CPU 使用率、メモリ使用量など、php-fpm プロセスのステータス情報をリアルタイムで表示できます。コマンド「top -p [pid]」を使用すると、指定した php-fpm プロセスを監視できます。
サンプルコード:
top -p 1234
1.2 php-fpm ステータス ページ
php-fpm は、ブラウザからアクセスして php-fpm をリアルタイムで表示できるステータス ページを提供します。動作状況。このページでは、php-fpmの接続数、リクエストの処理状況、プロセスプールの状態などの情報を取得できます。この機能を有効にするには、php-fpm の設定ファイルに次の設定を追加します。
pm.status_path = /status
サンプル コード:
http://localhost/status
1.3 パフォーマンス監視には swoole 拡張機能を使用します
swoole 拡張機能は、高性能 PHP アプリケーションの開発に使用できる高性能非同期ネットワーク フレームワークです。 swoole 拡張機能は、php-fpm のパフォーマンス監視を含む豊富な機能を提供します。 swoole の Server コンポーネントを使用すると、php-fpm のリクエスト処理時間、接続数、リクエスト量などの情報を監視できます。
サンプルコード:
<?php $server = new swoole_http_server("0.0.0.0", 9501); $server->on('request', function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World "); }); $server->on('start', function($server) { swoole_timer_tick(1000, function() use ($server){ $stats = $server->stats(); echo "Active Connections: " . $stats['connection_num'] . " "; echo "Total Requests: " . $stats['request_count'] . " "; }); }); $server->start(); ?>
2. php-fpm のパフォーマンスチューニング
2.1 php-fpm のプロセス数を調整する
php のパフォーマンスとパフォーマンス-fpm プロセスの数が大きく関係します。 php-fpm プロセスの数は、サーバー構成と実際のニーズに応じて調整できます。 php-fpm の設定ファイルで、以下のパラメータを変更することでプロセス数を調整できます。
pm.max_children = 50 # 进程池中允许的最大子进程数 pm.start_servers = 20 # 启动时创建的子进程数 pm.min_spare_servers = 10 # 最小空闲子进程数 pm.max_spare_servers = 30 # 最大空闲子进程数
2.2 php-fpm のプロセス プール モデルを調整します。
php-fpm は複数のプロセスをサポートします。プロセス プール モデル 、ニーズに応じて適切なモデルを選択できます。 php-fpm の設定ファイルで、次のパラメータを変更することでプロセス プール モデルを調整できます。
pm = dynamic # 动态进程池模型 pm = static # 静态进程池模型 pm = ondemand # 按需进程池模型
2.3 php-fpm のリクエスト タイムアウトを調整する
php-fpm のパフォーマンスタイムアウト期間に関連するリクエストにも関連します。 php-fpm のリクエストタイムアウトは、実際の状況に応じて調整できます。 php-fpm の設定ファイルで、次のパラメータを変更することでリクエストのタイムアウトを調整できます。
request_terminate_timeout = 60 # 请求处理超时时间,单位为秒 request_slowlog_timeout = 10 # 请求慢日志超时时间,单位为秒
2.4 php-fpm のメモリ制限を調整する
php-fpm のパフォーマンスはメモリにも関係します。用途によって異なります。 php-fpm のメモリ制限は、サーバーの構成と実際のニーズに基づいて調整できます。 php-fpm の設定ファイルで、次のパラメータを変更することでメモリ制限を調整できます:
pm.max_requests = 1000 # 单个子进程处理的最大请求数 php_admin_value[memory_limit] = 128M # 单个子进程的内存限制
結論:
php-fpm のパフォーマンスは、php のパフォーマンスを監視および調整することで改善できます。 -fpmと安定性。監視に関しては、top コマンド、ステータス ページ、または swoole 拡張機能を使用して、php-fpm の実行ステータスをリアルタイムで表示できます。チューニングに関しては、プロセス数、プロセス プール モデル、リクエスト タイムアウト、メモリ制限などのパラメーターを調整して、php-fpm のパフォーマンスを最適化できます。この記事が php-fpm のパフォーマンス監視とチューニングに役立つことを願っています。
以上がphp-fpm パフォーマンスの監視とチューニング戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。