ホームページ > PHPフレームワーク > Laravel > Laravel アプリケーションをより高速に実行しましょう。 (PHP OPcacheの利用)

Laravel アプリケーションをより高速に実行しましょう。 (PHP OPcacheの利用)

藏色散人
リリース: 2020-04-22 13:31:58
転載
2705 人が閲覧しました

Opcache とは

PHP スクリプトを実行するたびに、スクリプトをバイトコードにコンパイルする必要があります。OPcache はバイトコードをキャッシュできるため、次回同じスクリプトが実行されるときは、が要求された場合、スクリプトを再コンパイルする必要がないため、スクリプトの実行時間が大幅に節約され、アプリケーションの実行速度が向上し、サーバーのオーバーヘッドも節約されます。

数字で語る

もちろん、どのような最適化が行われたのか知りたいのですが、パフォーマンスの向上はアプリケーションとサーバーの構成に大きく依存します。ベンチマークについての一般的な理解が必要です。

この目的のために、Apache ベンチマーク テストを実行するために、1 コア CPU、1G メモリという非常に低構成のマシンを特別に準備しました。私が要求するのは、Laravel 5.4 のデフォルトのウェルカム ページで、10 件の同時リクエストが 1 分間アクセスを継続できるようにするものです。OPcache をオフにした場合のベンチマーク結果は次のとおりです:

OPcache disabled: 10.18 requests per second
ログイン後にコピー

このような低構成のサーバーの場合、これは悪くはないが、もっと改善できるはずだ。 OPcache を有効にした場合のベンチマーク テストの結果は次のとおりです (デフォルトの OPcache 構成を使用):

Enabled with default values: 34.52 requests per second
ログイン後にコピー

その差は依然として大きいです。次に、OPcache 構成を最適化します。これにより、ベンチマーク テストのパフォーマンスが向上します。

Enabled with optimized values: 42.53 requests per second
ログイン後にコピー

これを使用できましたか?

素晴らしいように聞こえますが、その使用方法

まず、OPcache がサーバーにインストールされていることを確認する必要があります。PHP 5.5 以降、OPcache には次の機能があります。これは PHP のコアの一部となっているため、Laravel 開発者にとって、この拡張機能を手動でインストールする必要は基本的にありません。

もちろん、わからない場合は、phpinfo() を見て確認できます:

<?php
phpinfo();
ログイン後にコピー

このスクリプトは、PHP にインストールされているすべての拡張機能を表示します。ページ内で「OPcache」を検索し、見つかった場合はインストールされていることがわかります。そうでない場合は、自分でインストールする必要があります。

次に、PHP 構成ファイルで OPcache を有効にする必要があります (デフォルトは閉じられています):

opcache.enable=1
ログイン後にコピー

次に、OPcache の最適化構成の作成を続けます:

opcache.memory_consumption=512
ログイン後にコピー

この設定は、OPcache に割り当てるメモリ領域 (単位: MB) を示します。64 より大きい値を設定するだけです。

opcache.interned_strings_buffer=64
ログイン後にコピー

この設定は、実際の文字列に割り当てる領域 (単位: MB) を示します。16 より大きい値を設定するだけです。

opcache.max_accelerated_files=32531
ログイン後にコピー

この構成は、キャッシュできるスクリプトの数を示します。この値は、プロジェクトに含まれるスクリプトの数にできるだけ近い (またはそれ以上) ように設定してください。

opcache.validate_timestamps=0
ログイン後にコピー

再検証スクリプトの構成値を変更します。0 (最高のパフォーマンス) に設定すると、PHP コードを変更するたびに OPcache を手動でクリアする必要があります。手動パージを望まない場合は、これを 1 に設定し、opcache.revalidate_freq を介して再検証間隔を構成できます。これにより、x 秒ごとに変更をチェックする必要があるため、パフォーマンスが低下する可能性があります。

opcache.save_comments=1
ログイン後にコピー

この設定ではスクリプトにコメントが残ります。一部のライブラリはこの設定に依存しており、オフにする利点が見つからないため、このオプションをオンにすることをお勧めします。

opcache.fast_shutdown=0
ログイン後にコピー

高速シャットダウンは、メモリをクリアするためのメカニズムを高速化しますが、ベンチマーク テストでは遅くなります。これにより、アプリケーションのパフォーマンスが向上する可能性がありますが、自分で試してみる必要があります。

最終的な構成の最適化は次のようになります:

opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=0
ログイン後にコピー

これらの構成値を試してみることができます。具体的な構成値は、アプリケーションのサイズとサーバー構成によって異なります。

最後に、この構成ファイルを保存して Web サーバーを再起動すると、アプリケーションは確実に高速化されます。

Laravel アプリケーションの準備

前述したように、opcache.validate_timestamps が 0 に設定されている場合、PHP コードを変更するたびに OPcache を手動でクリアする必要があります。この目的のために、OPcache クリーンアップを処理するための対応する Artisan コマンドを提供する拡張パッケージを作成しました: https://github.com/appstract/laravel-opcache。

拡張機能をインストールした後、次のコマンドを実行して OPcache をクリーンアップします:

php artisan opcache:clear
ログイン後にコピー

さらに、拡張機能パッケージには、プロジェクトの # で使用できる他の便利なツールもいくつか提供されています。 ## GitHub ページ にあります。

この記事は転載されたものです、元のアドレス: https://xueyuanjun.com/post/7326

以上がLaravel アプリケーションをより高速に実行しましょう。 (PHP OPcacheの利用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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