php-fpm を使用して高パフォーマンスのチューニングを行う方法
PHP は、Web アプリケーションや動的 Web サイトの開発に広く使用されている、非常に人気のあるサーバーサイド スクリプト言語です。ただし、トラフィックが増加すると、PHP アプリケーションのパフォーマンスが低下する可能性があります。この問題を解決するには、php-fpm (FastCGI Process Manager) を使用して高性能チューニングを行うことができます。この記事では、php-fpm を使用して PHP アプリケーションのパフォーマンスを向上させる方法とコード例を紹介します。
1. php-fpm のインストールと設定
まず、php-fpm をインストールする必要があります。次のコマンドを使用して、Linux システムに php-fpm をインストールできます:
sudo apt-get install php-fpm
インストールが完了したら、いくつかの構成を実行する必要があります。 php-fpm の設定ファイルを開きます。このファイルは、/etc/php/7.4/fpm/pool.d/www.conf
にあります。構成ファイルでは、特定のニーズに応じて調整できます。
プロセス プールは php-fpm プロセスの数を制御し、実際の状況に応じて調整できます。以下にいくつかの構成例を示します。
pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6
上記の構成では、動的プロセス プール (動的) を使用し、子プロセスの最大数 (pm.max_children) を 10 に設定し、初期の子プロセスの数を 10 に設定します。開始された子プロセス (pm .start_servers) は 4、アイドル プロセスの最小数 (pm.min_spare_servers) は 2、アイドル プロセスの最大数 (pm.max_spare_servers) は 6 です。
php-fpm は、実際のニーズに応じて選択できるさまざまなプロセス管理方法をサポートしています。以下に、構成例をいくつか示します。
pm = ondemand pm.process_idle_timeout = 10s pm.max_requests = 500
上記の構成では、オンデマンド管理方法 (ondemand) を使用し、プロセス アイドル タイムアウト (pm.process_idle_timeout) を 10 秒に設定し、最大数を設定しました。リクエスト数 (pm.max_requests) は 500 です。
2. PHP コードの最適化
php-fpm の構成を調整することに加えて、PHP コードを最適化してパフォーマンスをさらに向上させることもできます。
PHP は、OPcache、APC、Memcached などのさまざまなキャッシュ メカニズムを提供します。これらのキャッシュ メカニズムを適切に使用すると、スクリプトの実行時間を大幅に短縮できます。
以下は OPcache を使用するためのサンプル コードです:
<?php $filename = 'somefile.php'; if (apc_exists($filename)) { include apc_fetch($filename); } else { ob_start(); include $filename; $content = ob_get_contents(); ob_end_clean(); apc_store($filename, $content); echo $content; } ?>
PHP アプリケーションでは、データベース接続は非常にリソースです。操作を消費するため、データベースへの繰り返し接続を避けるように努める必要があります。
次は、シングルトン モードを使用してデータベース接続を管理するためのサンプル コードです:
<?php class Database { private static $instance; private $connection; private function __construct() { $this->connection = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); } public static function getInstance() { if (!self::$instance) { self::$instance = new Database(); } return self::$instance; } // ... } $db = Database::getInstance(); // 使用$db进行数据库操作 ?>
3. モニタリングとデバッグ
パフォーマンス チューニングに php-fpm を使用した後、次のことも行います。最適化の結果を保証するには、監視とデバッグが必要です。
php-fpm には、ブラウザからアクセスして php-fpm の実行ステータスとパフォーマンスを表示できるステータス ページが用意されています。索引。
次のコマンドを使用して、php-fpm ステータス ページを有効にできます:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
構成ファイル内で次の行を見つけて、コメントを解除します:
;pm.status_path = /status
構成ファイルを保存します。
sudo service php-fpm restart
これで、http://yourdomain.com/status
にアクセスして、php-fpm のステータス ページを表示できます。
xdebug は、パフォーマンスの問題のデバッグと分析に使用できる強力な PHP デバッガーです。
まず、xdebug をインストールする必要があります。次のコマンドを使用して、Linux システムに xdebug をインストールできます:
sudo apt-get install php-xdebug
インストールが完了したら、いくつかの構成を実行する必要があります。 php.ini ファイルを開きます。このファイルは、/etc/php/7.4/cli/php.ini
および /etc/php/7.4/fpm/php.ini
にあります。ファイルの最後に次の内容を追加します:
[xdebug] zend_extension=/usr/lib/php/20190902/xdebug.so xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_autostart=1
構成ファイルを保存し、php-fpm を再起動します:
sudo service php-fpm restart
これで、デバッガー ソフトウェア (PhpStorm、Eclipse など) を使用できるようになります。 .) php-fpm に接続し、デバッグとパフォーマンス分析を実行します。
結論
php-fpm の構成と PHP コードを最適化することで、PHP アプリケーションのパフォーマンスを向上させることができます。プロセス プール構成の適切な調整、プロセス管理方法の最適化、キャッシュの使用、データベース接続の繰り返しの回避などの手法は、PHP アプリケーションの応答速度と同時処理能力を向上させるのに役立ちます。同時に、監視およびデバッグ ツールを通じて、パフォーマンスの問題を適時に発見して解決し、全体的なユーザー エクスペリエンスを向上させることができます。この記事が、php-fpm を使用した高パフォーマンスのチューニングに役立つことを願っています。
以上がphp-fpm を使用して高パフォーマンスのチューニングを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。