ホームページ >バックエンド開発 >PHPチュートリアル >php-fpm パフォーマンスの監視とチューニング戦略

php-fpm パフォーマンスの監視とチューニング戦略

WBOY
WBOYオリジナル
2023-07-07 08:39:091350ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。