現在、LAMP (Linux + Apache + MySQL + PHP) は近年急速に発展し、Web サーバーのデファクトスタンダードとなっています。この記事では、LAMP の組み合わせに基づくサーバーのパフォーマンス最適化手法、つまり PHP の高速化を紹介します。
Apache サーバーの最適化、PHP の最適化、Mysql の最適化
1. eaccelerator を使用します
上記で Apache サーバーの最適化について説明しましたが、PHP の Web ページを閲覧したことがある方は、次のことに気づいたかもしれません。なぜ PHP の速度が遅いのか? 上記の応答は知られていません。非常に遅いのはなぜですか? これは、PHP プログラム コードが呼び出す関数ライブラリが多すぎるためで、これらの関数ライブラリを呼び出すたびにハード ディスクから読み込む必要があるためです。 PHPの速度は?メモリの速度はハードディスクよりもはるかに速いため、ハードディスク内のこれらの関数ライブラリを最初にキャッシュ (Cache) に読み込むことができれば。もちろんこの場合、速度は大幅に向上します。
2. ソフトウェアのダウンロードとインストール:
wget http://internap.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.bz2
tar jxf eaccelerator-0.9.3.tar.bz2
/usr/local/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
メイク;メイクインストール
/etc/php.ini ファイルを変更し、次の内容を追加します:
拡張子="/PATH/TO/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
次に、クイック アクセス データ ディレクトリを作成します:
mkdir /tmp/eAccelerator
chmod 0777 /tmp/eAccelerator
Apache サーバーを再起動します:
/etc/rc.d/init.d/httpd 再起動
Lynx ブラウザで Web ページを開き、phpinfo() で図 7 を確認します。これは、インストールが成功したことを意味します。
図 7 eAccelerator が有効になっている
画像からわかるように、eAccelerator が有効になっています。以下の ab コマンドを使用します。 Apache HTTP サーバー パフォーマンス テスト ツールは、Apache http サーバーをテストするためのツールです。このツールを使用して、単位時間内に Apache に送信されるリクエストの数を指定して、Apache とマシンのパフォーマンスを確認できます。一緒に働きます。コマンドは次のとおりです:
/home/apache/bin/ab -c 20 -n100 –w http://localhost/phpinfo >1.html
-c: 同時にサーバーに送信されるリクエストの数。デフォルトでは、一度に 1 つの http リクエストのみが実行されます。
-n: テストセッション実行時に発行されたリクエストの数。
-w: 出力結果を HTML テーブルに出力します。デフォルトのテーブルは 2 列、n 行で、背景が白、枠が黒です。
ApacheBench のテスト データの 1 秒あたりのリクエスト数 (以下、rps) は、1 秒あたりにサーバーによって返されるページ数を指します。比較すると、eAccelerator を使用した後、Web ページの速度が大幅に高速化されます。図8 lynxブラウザのHTML形式テスト結果。
図8 HTML形式のテスト結果
3. Zend Optimizer を使用する
Zend Optimizer はコード最適化メソッドを使用して、PHP 4.0 アプリケーションの実行速度を向上させます。実装の原則は、ランタイム コンパイラ (Run-Time Compiler) によって生成されたコードを、最終的に実行される前に最適化することです。一般に、Zend Optimizer を使用する PHP プログラムは、使用しないプログラムより 40% ~ 100% 高速になります。これは、Web サイト訪問者が Web をより速く閲覧し、より多くのことを達成し、顧客満足度を向上できることを意味します。応答の高速化は、ハードウェアへの投資を節約し、Web サイトが提供するサービスを強化することも意味します。したがって、Zend Optimizer を使用することは、電子商取引の収益性を向上させることに相当します。 Zend Optimizer は、PHP ユーザー、特に Web サイトを運営するユーザーに多くのメリットをもたらします。 PHP プログラムを迅速に実行すると、サーバーの CPU 負荷が大幅に軽減され、応答時間 (訪問者がリンクをクリックしてからサーバーがページの読み取りを開始するまでの時間) を半分に短縮できます。
Zend Optimizer のインストールは確実です。インストール ウィザードは、エンジンの起動を支援するために、選択に従って php.ini を自動的に変更します。
ソフトウェアのダウンロードとインストール:
wget http://downloads.zend.com/optimizer/3.0.0/ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
gunzip ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
tar vxf ZendOptimizer-3.0.0-linux-glibc21-i386.tar
cd ZendOptimizer-3.0.0-linux-glibc21-i386
./install
図 9 Zend Optimizer インストール ウィザード
Apache サーバーを再起動します:
/etc/rc.d/init.d/httpd 再起動
Web ページを開いて phpinfo() を介して画像を表示します。これは、Zend Optimizer が正常にインストールされていることを意味します。
図 10 Zend Optimizer が正常にインストールされた
その後、ab コマンドを使用して再度テストできます。 Siege (http://www.joedog.org/siege/) をテストに使用することもできます。これは、アプリケーションのストレス耐性を評価するために WEB 開発用に設計されたストレス テストおよび評価ツールです。Web に合わせて構成できます。サイトは複数のユーザーによる同時アクセスを実行し、各ユーザーのすべてのリクエスト処理の対応時間を記録し、一定の同時アクセス数の下でそれを繰り返します。