ZendOpcache で PHP を高速化する

黄舟
リリース: 2023-03-03 14:18:02
オリジナル
1207 人が閲覧しました

Optimizer+ は、クローズドソースですが、Zend によって開発された無料で使用できる PHP 最適化アクセラレーション コンポーネントです。これは、最初で最速のオペコード キャッシュ ツールです。現在、Zend Technologies は、PHP ライセンスに基づいて Optimizer+ を Zend Opcache としてオープンソース化しています。

Zend OPcache は、オペコードのキャッシュと最適化を通じて、より高速な PHP 実行を提供します。プリコンパイルされたスクリプト ファイルは後で使用できるように共有メモリに保存されるため、ディスクからコードを読み取ってコンパイルする時間の消費が回避されます。同時に、コードの実行を高速化するためにいくつかのコード最適化モードも適用します。

1. オペコードキャッシュとは何ですか?

インタプリタはスクリプト コードの分析を完了すると、オペレーション コード (Operate Code、opcode) とも呼ばれる、直接実行できる中間コードを生成します。オペコード キャッシュの目的は、コンパイルの繰り返しを回避し、CPU とメモリのオーバーヘッドを削減することです。動的コンテンツのパフォーマンスのボトルネックが CPU やメモリではなく、データベース クエリによって引き起こされるディスク I/O オーバーヘッドなどの I/O 操作にある場合、オペコード キャッシュのパフォーマンス向上は非常に限られます。しかし、オペコード キャッシュは CPU とメモリのオーバーヘッドを削減できるため、これは常に良いことです。環境に優しい方法で、消費量は可能な限り削減されるべきですよね。 :D

最新のオペコード キャッシュ (Optimizer+、APC2.0+、その他) はストレージに共有メモリを使用し、実行前にコードを「逆シリアル化」することなく、そこからファイルを直接実行できます。これにより、パフォーマンスが大幅に向上し、多くの場合、サーバー全体のメモリ消費量が減少し、欠点はほとんどありません。

2. Optimizer+ と APC の長所と短所の比較

Optimizer+ は 2013 年 3 月中旬に Opcache に名前変更されました。

PHP wiki の議論によると、Zend Opcache は php 5.5 に統合されようとしています。 APC の競合相手として、新しい Zend Opcache が APC の地位に代わる可能性がありますが、OptimizerPlus には APC のようなユーザー キャッシュ機能はありません。

APC に対する OPTIMIZER+ の利点

パフォーマンス。テストによると、Zend Optimizer+ は一貫して APC よりも優れたパフォーマンスを示します。コードに応じて、1 秒あたりに処理されるリクエストの数は 5 ~ 20% 増加します。 Google ドキュメントに記録されたテスト結果のうち、WordPress 2.1.1 (新しいバージョンの WP でテストしなかった理由はわかりません) のパフォーマンスは約 8% 向上しました。理論的には、WP 3.5.1 ではパフォーマンスが約 5 ~ 10% 向上するはずです。 WordPress を実行しているサーバーの場合、Optimizer+ を使用すると、CPU 使用率が大幅に削減され、ページの読み込み速度が向上します (グラフィックはこちら)。

新しいPHPバージョンをサポートします。 Zend と PHP コミュニティは、Optimizer+ が最新バージョンの PHP をサポートするのを支援します。

信頼性。 Optimizer+ には、データ破損によるサーバーのクラッシュを防ぐオプションの破損検出機能があります。

互換性の向上。 PHP コミュニティは、Optimizer+ がコミュニティでサポートされているすべてのバージョンの PHP と互換性を持つことを目指しています。

OPTIMIZER+ に対する APC の利点

APC にはデータ キャッシュ API がありますが、Optimizer+ にはありません。

APC は、古い無効なスクリプトによって占有されていたメモリをリサイクルできます。 APC には、使用されなくなったスクリプトに関連付けられたメモリを再利用できるメモリ マネージャーがあります。 Optimizer+ は異なり、そのようなメモリを「ダーティ」としてマークしますが、再利用はしません。 Optimizer+ は、「ダーティ」メモリ使用量の一定の割合が設定されたしきい値に達すると、自動的に再起動します。この動作には、安定性の点で長所と短所の両方があります。

3. Zend Opcode を使用する

これで、PHP 最適化加速ツールとして APC の代わりに Zend Opcache を使用できるようになりました。現在の Zend オペコードは、PHP 5.2.*、5.3.*、5.4.*、および PHP-5.5 開発バージョンと互換性があります。ただし、PHP 5.2 のサポートは将来的に削除される予定です。

注: Zend Opcache は eaccelerator と競合します。 Zend Opcache をインストールするには、最初に eaccelerator をアンインストールする必要がある場合があります (このアクセラレータ モジュールを使用している場合)。

ソース コードからインストールして構成する

Zend Opcache のソース コードは github でホストされており、現在も ZendOptimizerPlus と呼ばれています。

詳しいインストール手順については、README ファイルを参照してください。

注:

独自のサーバーに展開する前に、ローカル仮想マシンでテストすることをお勧めします。

インストール前に、eacceleratro、xcache、または apc などのコンポーネントを削除するのが最善です。

ちなみに、ソースコードからコンパイルしてインストールする場合はphp-develが必要です。これは、README のクイック インストール セクションの冒頭で使用されます、

$PHP_DIR/bin/phpize

phpize へのパスがわからない場合は、次のようにすることができます

phpize はどこですか

README ファイル内の推奨最適化設定にも対応します。

EPEL ソースからインストールして構成する

私はソースコードからプログラムをコンパイルしてインストールするのが好きではありません。1 つは自分のレベルに限界があるため、もう 1 つはトラブルが怖いからです。以下では、CentOS での操作を例に、EPEL インストール ソースから Zend Opcache をインストールする方法を、私の VPS の構成に基づいて説明します。

EPEL コミュニティは Zend Opcache のインストール パッケージを提供しており、yum で直接インストールできます。もちろん、EPEL インストール ソースが構成され、使用されていることが前提となります。そうでない場合は、ここを参照してください。

念のため、REMI インストール ソースの PHP はすでにバージョン 5.4 です。一部の人々は、WordPress のパフォーマンスが PHP 5.3 よりも PHP 5.4 の方が優れている (10% 高速で RAM 消費量が少ない) ことをテストしているため、PHP をアップグレードすることは悪いことではありません。

操作手順:

epelインストールソースを使用して設定します。すでに存在する場合はスキップしてください。

eaccelerator、xcache、apc を削除します:

yum delete php-eaccelerator php-xcache php-apcu

使用しない場合はスキップしてください。

システムのアップグレード:

yum update

その目的は、remi インストールソースのステータスに基づいて、現在の php およびその他のソフトウェアを remi がサポートする最新バージョンにアップグレードすることです。現時点では、システムの出力が次のように類似していることがわかります。公式の Fedora/Red Hat ビルドを使用し、

公式のものをオーバーライドします。Fedora プロジェクトや Red Hat にバグを報告しないでください。


専用のフォーラム http://forums.famillecollet.com/

警告: /etc/php.ini を使用してください。 /etc /php.ini.rpmnew
Updating :MySQL-libs-5.5.31-1.el6.remi.i686 として作成されましたs ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ 2/26

警告: この MySQL RPM は公式の Fedora/Red Hat ビルドではないので、
公式ビルドをオーバーライドします。Fedora プロジェクトや Red Hat にバグを報告しないでください。
専用のフォーラム http://forums.famillecollet.com/

警告: /etc/my .cnf は /etc/my.cnf.rpmnew として作成されました


これは、Fedora / Red Hat バージョンから Remi バージョンに移行中であることを意味するため、Fedora / Red Hat にヘルプを求めないでください。あはは、発生した問題はすべてオンラインで見つかるようで、公式フォーラムで質問することはほとんどありません。私のような初心者レベルのユーザーは、このような深刻な問題に遭遇することはありません。

Zend Opcache (pecl バージョン) をインストールします:

yum install php-pecl-zendopcache

インストール中に生成された opcache 構成ファイルは、デフォルトの /etc/php.d ディレクトリにあります:


opcache-default.blacklist

opcache.ini

この設定ファイルは基本的に README の推奨設定を使用しており、いくつかの箇所のみを変更する必要があります。

vi /etc/php.d/opcache.ini

推奨構成を次のように変更して保存するだけです (完全な Zend Opcache 構成情報を参照してください):


opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

opcache.revalidate_freq=60

opcache.fast_shutdown=1
opcache.enable_cli=1


php.ini 設定を変更する必要はありません。Apache サービスを再起動して有効にします:

service httpd restart

正しく開始されているかどうかを確認します:


php -v

出力結果は次のようになります:


PHP 5.4.14 (cli) (built: Apr 11 2013 11:04:35) Copyright (c) 1997-2013 PHP グループ Zend エンジン v2.4.0、著作権 (c) 1998-2013 Zend Technologies Zend OPcache v7.0.1 を使用、著作権 (c) 1999-2013、Zend Technologies

上記は、ZendOpcache を使用して PHP を高速化する内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php) に注目してください。 .cn)!


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