Web サイトのトラフィックが増加し続ける中、Web サイトのパフォーマンスの最適化がユーザー エクスペリエンスを向上させる鍵となっています。主流のサーバーサイド スクリプト言語としての PHP の動作効率は、動的コンテンツの生成速度に直接影響します。この記事では、開発者が Web サイトのパフォーマンスを向上させるのに役立ついくつかの実践的な PHP-FPM 最適化方法を、参考となる具体的なコード例とともに紹介します。
PHP-FPM ワーカー プロセスの数を増やす: ワーカー プロセスの数を増やすと、サーバー リソースを最大限に活用でき、PHP の同時処理能力が向上します。 PHP-FPM 構成ファイルでは、pm.max_children パラメーターを変更できます (たとえば、pm.max_children = 50 に設定)。
プロセス管理方法を調整する: PHP-FPM はデフォルトで静的モードを使用し、各プロセスは固定数のリクエストを処理します。実際の状況に応じて、ダイナミック モードまたはオンデマンド モードを使用できます。動的モードはリクエストの数に基づいてプロセスの数を自動的に調整しますが、オンデマンド モードはオンデマンドでプロセスを開始またはシャットダウンします。これは、pm = Dynamic または pm = ondemand など、pm パラメーターを変更することによって実現されます。
リクエストのタイムアウトを設定する: リソースが長時間占有されることを避けるには、request_terminate_timeout パラメーターを通じて制御します (たとえば、30 秒に設定します)。
キャッシュ メカニズムを使用する: データベース クエリやファイルの読み取り/書き込み操作の繰り返しを減らし、よく使用されるデータをキャッシュに保存し、処理速度を向上させます。 Memcached、Redis、または PHP の組み込みキャッシュ機能を使用できます。例えば:
<?php $memcached = new Memcached(); $memcached-> addServer('localhost', 11211); $key = 'キャッシュキー'; $data = $memcached->get($key); if (!$data) { $data = // データベースまたはファイルからデータを読み選ぶります $memcached->set($key, $data, 3600); // 1 時間キャッシュします} // 後続の操作するには $data を使用しますか?>
Gzip 圧縮を有効にする: zlib.output_compression を通じて送信コンテンツのサイズを削減し、読み込み速度を向上させます。たとえば、zlib.output_compression = On に設定します。
データベース アクセスの最適化: データベース クエリはパフォーマンスのボトルネックになることがよくあります。 SQL の最適化、インデックスの追加、データ量のクエリの削減によって効率を向上できます。同時に、キャッシュを組み合わせてデータベース I/O を削減します。たとえば、PDO 前処理を使用します。
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo-> prepare('SELECT * FROM table WHERE id = :id'); $statement->bindParam(':id', $id); $statement->execute(); $result = $statement->fetchAll(); // 後続の操作するには $result を使用しますか?>
ファイルの読み取りおよび書き込み操作を減らす: 動的に生成されたコンテンツを静的ファイルとしてキャッシュし、フロントエンド サーバー経由で直接読み取るようにして、PHP 処理の負担を軽減します。
この記事では、構成の調整、コードの最適化、キャッシュ戦略、データベースの最適化手法など、Web サイトの動的コンテンツ生成の速度を向上させる PHP-FPM の最適化手法を紹介します。これらの方法を適切に適用すると、Web サイトのパフォーマンスとユーザー エクスペリエンスが大幅に向上します。ただし、過剰な最適化によって引き起こされる他の問題を避けるために、実際の Web サイトの状況に基づいて最適化戦略を選択する必要があります。これらの方法を実践することで、開発者は Web サイトの応答速度とシステムの安定性を効果的に向上させることができます。