Home > Linuxソフト > PHPアクセラレーターのeAcceleratorを導入してCPU負荷軽減を図る。

PHPアクセラレーターのeAcceleratorを導入してCPU負荷軽減を図る。

  • 投稿日2009-10-06 (火)
  • 更新日2010-02-24 (水) 17:49
  • Linuxソフト
Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録 このエントリーを含むはてなブックマーク

PHPアクセラレーター、PHPスクリプトが実行された際の途中のコンパイルデータをキャッシュすることで、
以後同じファイルに対してアクセスがあった時に、そのキャッシュファイルを利用することで高速化するという技術です。

高速化もありますが、なによりコンパイルデータをキャッシュしそれを利用する事でCPUの負荷対策にならないかと考えました。
今回はeAcceleratorをインストールしてみましたのでその備忘録です。

eAcceleratorのインストール


ダウンロード、解凍、フォルダ移動

/usr/local/src
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3

phpizeを実行してコンパイル準備をします。
しかし、人それぞれパスが違う為、locate等を使ってファイルパスを確認してください。

/usr/local/bin/phpize

ここでこんなエラーが

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.
autoconfがないと怒られてますので
apt-get install autoconf
でautoconfをインストールしてから再度実行すると成功

次にconfigureですが、オプションを指定するので
locate php-configなどでphp-configのパスを確認してください


./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
make
make install

最後に表示される
Installing shared extensions:     /usr/local/lib/php/extensions/○○
のパスをメモっておいて下さい。


eAcceleratorの初期設定

次に管理ファイルをブラウザで見れる任意の位置にコピー。
cp control.php /usr/local/apache2/htdocs/

で、ログインのパスワード等を設定
vi /usr/local/apache2/htdocs/control.php

キャッシュされたデータを保存しておく場所を作成
mkdir /dev/shm/eaccelerator/
今回はキャッシュ領域で爆速!だけど再起動したら消えちゃう領域(/dev/shm/)
を指定してみました。

php.infoなどで確認できるConfiguration File (php.ini) Pathの場所を確認
php.iniがある場合は以下を追記。
ない場合はphp.iniというファイルを作成して、以下を追記して下さい。


[eAccelerator]
zend_extension = "/usr/local/lib/php/extensions/○○/eaccelerator.so"
eaccelerator.shm_size = "64"
eaccelerator.cache_dir = "/dev/shm/eaccelerator/"
eaccelerator.allowed_admin_path = "/home/xxx/public_html/control.php"
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"
eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"

これらの設定項目に対する詳しい解説は
PHP:eAccelerator で PHP 高速化
を参考にさせていただいたので参照してみて下さい。

以上の設定が完了したら Apacheを再起動させます。

phpinfo等でeacceleratorの項目が追加されていたり、
サイトにアクセスしてみて、キャッシュとして指定したフォルダにファイルが生成されていっていれば
導入は成功です。

eAcceleratorの効果!

こんな事を言ってしまえばアレですが、
体感速度もCPU負荷も
あまり目にみえてよい結果があったという事はありませんでした・・・。
まだ全部キャッシュされていないからかもしれませんが。

さきほどの参考にさせていただいたサイトには
「アプリケーション本来の仕事に時間がかかってる場合はさほど効果が得られない」
といった事がかかれていたので、
そういった原因かもしれません。

以上、備忘録でした。




コメント:0

コメントフォーム
情報を保存

トラックバック:1

この記事のトラックバックURL
http://www.ahref.org/tech/server/linuxsoft/405.html/trackback
この記事へのリンク
エーエイチレフ linuxサーバー技術情報 からの記事 PHPアクセラレーターのeAcceleratorを導入してCPU負荷軽減を図る。
trackback from MHP@kai 11-09-19 (月) 15:55

CentOS6-PHPのインストール〜設定方法 -日記篇-

Apacheもできたので、
皆大好きPythonのインストール…と行きたいのですが、
私はSphinxのdiag系で少しPythonを触ったくらいで、
素人さんなので素直にPHPをインストールします(´・ω・`)

P…

Home > Linuxソフト > PHPアクセラレーターのeAcceleratorを導入してCPU負荷軽減を図る。

Return to page top

運営会社(株)シーズ WEBアプリケーション、フリーCGI配布「ahref(エーエイチレフ)」 Eビジネスに強いレンタルサーバー「ACサーバー」 大容量ファイル転送サービス「デカメール」 動画を楽しもう♪動画ポータルコミュニティ「モヴィエ」