PHP5.6にAPCuを導入

PHPを高速化するために、APCuを導入してみます。
ユーザキャッシュでパフォーマンスを向上させる仕組みらしいです。

もちろん、PHPがインストールされているのが前提です。

yumでモジュールをインストール

# yum --enablerepo=remi-php56,remi install php-pecl-apcu

そして、PHPモジュールを使用しているPHP-fpmやnginxを再起動。(ここは環境によって違います

# service php-fpm restart
# service nginx restart

これだけです(笑)
というのも、インストールするとデフォルトで有効になるからです。

設定ファイルは下記にあります。

# vim /etc/php.d/40-apcu.ini

デフォルトから変更するとすれば下記。

apc.enable_cli=1
apc.shm_size=64M



ちなみに、どれくらい早くなるのか?試してみた結果

試験環境

  • さくらのVPS(メモリ1GB)
  • nginx + PHP5.6 + PHP-fpm + OPcache
  • WordPress導入直後のTopページ

結果は抜粋です。

まずは、APCu導入前。

# ab -n 100 -c 4 http://xxxx
Concurrency Level:      4
Time taken for tests:   3.688 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      1055500 bytes
HTML transferred:       1029400 bytes
Requests per second:    27.11 [#/sec] (mean) ★
Time per request:       147.536 [ms] (mean) ★
Time per request:       36.884 [ms] (mean, across all concurrent requests)
Transfer rate:          279.46 [Kbytes/sec] received

次に、APCu導入後。

# ab -n 100 -c 4 http://xxxx
Concurrency Level:      4
Time taken for tests:   3.245 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      1055500 bytes
HTML transferred:       1029400 bytes
Requests per second:    30.82 [#/sec] (mean) ★
Time per request:       129.785 [ms] (mean) ★
Time per request:       32.446 [ms] (mean, across all concurrent requests)
Transfer rate:          317.68 [Kbytes/sec] received

注目するのは★のとこです。

  • Requests per second:1秒あたりに処理できるリクエスト数(値が大きいほど高速)
  • Time per request:1リクエストあたりの処理時間(値が小さいほど高速)


高速化なら合わせてこちらもどうぞ -> PHP5.6にOPcacheを導入