APC(Alternative PHP Cache) Edit

  • APCの効果
    『XOOPSは重かった…』ということで、PHPを高速化すべくAPC (Alternative PHP Cache) を導入してみました。

    PHPはスクリプトを実行する際、毎回内部でコンパイル作業を行っています。
    通常ならば、このコンパイル済みコードはスクリプトの実行終了と同時に捨てられるのですが、
    APCには、これらコンパイル済みコードを再利用するためにキャッシュする機能があります。
    つまり、APCを使用すると、ページがキャッシュにヒットする限り、コンパイル作業は
    スキップされるので、PHPが高速化されたように感じます。

    さて!どれくら高速化するのでしょうか?
    PukiWikiを使って、APCがONの時とOFFの時の実行時間を計測し、APCの効果を定量的に評価してみました。
    ( PukiWikのページ最終行には、表示にかかった時間が表示されます。実行時間はそれを用いました。)


    APCOFF(秒)ON(秒)速度比
    1回目0.7500.7701.03
    2回目0.7300.5300.72
    3回目0.7500.540
    4回目0.7500.540


    評価結果ですが、
    1度目はキャッシングのオーバーヘッドでしょうか? わずかにAPC=ONのケースが遅くなっています。
    しかし、2度目以降はAPC=ONのキャッシュ効果がはっきり現れ、実行速度が向上しています。
    (体感的にはもっと高速化しているよう感じます。)

    『APCの効果は劇的だった……』と結論づいたのでインストールを開始しましょう。 (順序が逆ですが。。。)

  • APCのインストール
    http://pear.php.net/package/APC/ からAPC-2.0.3.tgzを取ってきて作業用ディレクトリに展開します。
    そして次のようにコンパイルしてインストールします。
    (APC-2.0.4が出てるようですが未検証)
    landisk:~# mkdir /home/src/apc
    landisk:~# cd /home/src/apc
    landisk:/home/src/apc# tar vxfz 何処かの/APC-2.0.3.tgz
    landisk:/home/src/apc# cd APC-2.0.3
    landisk:/home/src/apc/APC-2.0.3# phpize
    Configuring for:
      PHP Api Version:   20020918
      Zend Module Api No:   20020429
      Zend Extension Api No:   20021010
    landisk:/home/src/apc/APC-2.0.3# ./configure --enable-apc --enable-mmap
    landisk:/home/src/apc/APC-2.0.3# make
    landisk:/home/src/apc/APC-2.0.3# make install
    
    次にPHPの設定ファイルにAPCのモジュールを登録します。 "/usr/local/lib/php.ini"を次のように編集します。
    443行目付近
    ; Directory in which the loadable extensions (modules) reside.
    extension_dir = "/usr/local/lib/php/extensions
    extension=no-debug-non-zts-20020429/apc.so
    apc.mmap_file_mask=/tmp/apc.XXXXXX
    
    apacheを再起動します。
    landisk:/home/src/apc/APC-2.0.3# apachectl restart
    phpの動作確認の節で作成したphpinfo.phpをブラウザからアクセスしてください。
    次のようなAPCの設定項目が表示されればOKです。
    phpMyAdminやXOOPSなど、PHPで書かれた重めアプリケーションを実行すると、
    速度の向上が体感できると思います。
    apc.png

MMCache Edit

  • MMCacheの効果
    MMCacheとは、前述したAPCと同様の機能を実現するためのモジュールです。
    試しに使用してみたところ、MMCacheのほうがAPCよりも性能が良かったので、
    MMCacheに乗り換えることにしました。


    cacheモジュールなしAPCMMCache
    (秒)速度比(秒)速度比(秒)速度比
    1回目0.7501.000.7701.030.9001.2
    2回目0.7300.5300.720.4800.65
    3回目0.7500.5400.480
    4回目0.7500.5400.480


  • MMCacheのインストール
    http://turck-mmcache.sourceforge.net/index_old.html から
    turck-mmcache-2.4.6.tar.gz を取ってきて作業用ディレクトリに展開します。
    そして次のようにコンパイルしてインストールします。
    landisk:~# mkdir /home/src/mmcache
    landisk:~# cd /home/src/mmcache
    landisk:/home/src/mmcache# tar vxfz 何処かの/turck-mmcache-2.4.6.tar.gz 
    landisk:/home/src/mmcache# cd turck-mmcache-2.4.6
    landisk:/home/src/mmcache/turck-mmcache-2.4.6# phpize
    landisk:/home/src/mmcache/turck-mmcache-2.4.6# ./configure --enable-mmcache=shared
    landisk:/home/src/mmcache/turck-mmcache-2.4.6# make
    landisk:/home/src/mmcache/turck-mmcache-2.4.6# make install
    landisk:/home/src/mmcache/turck-mmcache-2.4.6# mkdir /tmp/mmcache
    landisk:/home/src/mmcache/turck-mmcache-2.4.6# chmod 0777 /tmp/mmcache
    
    次にPHPの設定ファイルにMMCacheのモジュールを登録します。
    "/usr/local/lib/php.ini"を次のように編集します。
    (なおAPCとMMCacheは同時に使用できないので、APCの設定項目を無効にする必要があります。)
    443行目付近
    ; Directory in which the loadable extensions (modules) reside.
    extension_dir = "/usr/local/lib/php/extensions"
    ;extension=no-debug-non-zts-20020429/apc.so       ←APCの設定を削除
    ;apc.mmap_file_mask=/tmp/apc.XXXXXX          ←APCの設定を削除
    
    extension="no-debug-non-zts-20020429/mmcache.so"
    mmcache.shm_size="4"
    mmcache.cache_dir="/tmp/mmcache"
    mmcache.enable="1"
    mmcache.optimizer="1"
    mmcache.check_mtime="1"
    mmcache.debug="0"
    mmcache.filter=""
    mmcache.shm_max="0"
    mmcache.shm_ttl="0"
    mmcache.shm_prune_period="0"
    mmcache.shm_only="0"
    mmcache.compress="1"
    
    apacheを再起動します。
    landisk:~# apachectl restart
    phpの動作確認の節で作成したphpinfo.php をブラウザからアクセスしてください。
    次のようなMMCacheの設定項目が表示されればOKです。
    phpMyAdminやXOOPSなど、PHPで書かれた重めアプリケーションを実行すると、
    速度の向上が体感できると思います。

    mmcache.png


Counter: 2514, today: 1, yesterday: 0

添付ファイル: filemmcache.png 111件 [詳細] fileapc.png 112件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-13 (火) 20:02:26 (6534d)