PHP5.6にOPcacheを導入

PHPを高速化するために、Zend OPcacheを導入してみます。
オペコードキャッシュといって、コンパイル後のコードをメモリに保持してパフォーマンスを向上させる仕組みらしいです。

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

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

# yum --enablerepo=remi-php56,remi install php-opcache

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

# service php-fpm restart
# service nginx restart

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

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

# vim /etc/php.d/10-opcache.ini

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

opcache.enable_cli=1



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

試験環境

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

結果は抜粋です。

まずは、OPcache導入前。

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

次に、OPcache導入後。

# 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

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

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


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