ホームページ > バックエンド開発 > PHPチュートリアル > php-fpm パフォーマンス最適化のヒントの共有

php-fpm パフォーマンス最適化のヒントの共有

WBOY
リリース: 2023-07-09 14:50:01
オリジナル
1447 人が閲覧しました

PHP-FPM パフォーマンス最適化スキルの共有

はじめに:
インターネットの急速な発展に伴い、PHP は人気のあるスクリプト言語として、さまざまな Web サイトやアプリケーションで広く使用されています。ただし、PHP はインタープリタ言語であるため実行効率が低く、サーバーのパフォーマンスが低下する可能性があります。特に同時実行性の高い環境で PHP アプリケーションのパフォーマンスを向上させるには、PHP-FPM のパフォーマンス最適化対策を実行する必要があります。この記事では、開発者が PHP アプリケーションの実行効率を向上させるのに役立つ、コード例を含む PHP-FPM のパフォーマンス最適化テクニックをいくつか紹介します。

1. PHP-FPM 設定ファイルを調整する

PHP-FPM 設定ファイルを調整すると、リクエストの処理能力が向上します。一般的な構成調整は次のとおりです。

  1. プロセス プール サイズを調整します。
    PHP-FPM 構成ファイルでは、プロセス プールのサイズを設定できます。同時に処理できるリクエストの数。実際のサーバー構成や負荷状況に応じて調整できます。以下に例を示します。

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 10
    pm.min_spare_servers = 5
    pm.max_spare_servers = 20
    ログイン後にコピー

    ここで、pm.max_children はプロセス プール内のプロセスの最大数を表し、pm.start_servers は起動時のプロセスの数を表し、pm.min_spare_servers はプロセス プール内のプロセスの数を表します。アイドル プロセスがこの値より小さい場合、プロセスが開始されます。新しいプロセスの場合、pm.max_spare_servers は、アイドル プロセスの数がこの値を超えるとプロセスが停止されることを示します。

  2. リクエストのタイムアウトを調整します:
    リクエストのタイムアウトは、PHP-FPM 構成ファイルで設定できます。実際のビジネスニーズに応じて適切な調整が可能です。以下に例を示します。

    request_terminate_timeout = 30s
    ログイン後にコピー

    このうち、request_terminate_timeout はリクエストのタイムアウトを秒単位で表します。

  3. 低速ログを有効にする:
    低速ログを有効にすると、どのリクエストの実行に時間がかかるかを分析し、アプリケーションのパフォーマンスを最適化できます。スローロギングのパスと閾値はPHP-FPMの設定ファイルで設定できますが、例は以下の通りです:

    slowlog = /var/log/php-fpm/slow.log
    request_slowlog_timeout = 1s
    ログイン後にコピー

    このうち、slowlogはスローロギングのパス、request_slowlog_timeoutはスローロギングの閾値を表します。リクエストを秒単位で実行します。

2. PHP コードの最適化

PHP-FPM 構成ファイルの調整に加えて、PHP コードを最適化することでアプリケーションのパフォーマンスを向上させることもできます。一般的な最適化手法とサンプル コードを次に示します。

  1. ファイルの読み取りおよび書き込み操作を減らす:
    ファイルの読み取りおよび書き込み操作が頻繁に行われると、PHP の実行効率が大幅に低下します。ファイルの読み取りおよび書き込み操作の数を減らすことで、パフォーマンスを向上させることができます。以下は例です:

    // 优化前
    for ($i = 0; $i < 100; $i++) {
     file_get_contents('file.txt');
    }
    
    // 优化后
    $file = file_get_contents('file.txt');
    for ($i = 0; $i < 100; $i++) {
     // 使用缓存数据
     echo $file;
    }
    ログイン後にコピー
  2. キャッシュの使用:
    キャッシュを使用すると、データベースやその他のリソースへの頻繁なアクセスが軽減され、PHP アプリケーションの応答速度が向上します。 Memcached、Redis などのさまざまなキャッシュ テクノロジを使用できます。以下に例を示します。

    $key = 'data';
    $data = $cache->get($key);
    if (!$data) {
     // 从数据库获取数据
     $data = $db->query('SELECT * FROM table');
     // 将数据存入缓存
     $cache->set($key, $data, 3600);
    }
    ログイン後にコピー
  3. データベース クエリの数を減らします。
    頻繁なデータベース クエリ操作は、一般的なパフォーマンスのボトルネックです。不必要なクエリの数を減らすことでパフォーマンスを向上させることができます。以下は例です:

    // 优化前
    $result = $db->query('SELECT * FROM table');
    foreach ($result as $row) {
     // 处理数据
     // 进行其他操作
     $db->query('SELECT * FROM table2 WHERE id = '.$row['id']);
    }
    
    // 优化后
    $result = $db->query('SELECT * FROM table');
    $data = $db->query('SELECT * FROM table2 WHERE id IN ('.implode(',', array_column($result, 'id')).')');
    foreach ($result as $row) {
     // 处理数据
     // 进行其他操作
     $row_data = array_filter($data, function ($item) use ($row) {
         return $item['id'] == $row['id'];
     });
     // 使用$row_data进行后续操作
    }
    ログイン後にコピー

概要:
PHP-FPM のパフォーマンスの最適化は、PHP アプリケーションの実行効率を向上させるために非常に重要です。 PHP-FPM の構成ファイルを調整し、PHP コードを最適化することで、同時実行性が高い条件下での応答速度を向上させることができます。実際の開発では、実際のビジネス ニーズとサーバー構成に基づいてターゲットを絞ったパフォーマンスの最適化を上記の手法と組み合わせて実行し、PHP アプリケーションのパフォーマンスとユーザー エクスペリエンスを向上させる必要があります。

上記は、私がいくつかの PHP-FPM パフォーマンス最適化テクニックを共有したものです。開発者の役に立つことを願っています。 PHP アプリケーションの開発と最適化での成功を祈っています。

以上がphp-fpm パフォーマンス最適化のヒントの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート