【Amazon Linux】php7.1にZend OPcacheとAPCuはインストールできない?

概要

サーバー高速化をしようとしたけど思ったような結果にならなかったので共有します。
php7.1にZend OPcacheとAPCuをいれると…むしろ遅くなったような…。
というかphp-pearがphp5.6に依存してるのかインストールできないですたぶん。

検証環境

$ cat /etc/system-release
Amazon Linux AMI release 2017.09

$ httpd -v
Server version: Apache/2.4.27 (Amazon)
Server built:   Sep 24 2017 23:19:50

$ php -v
PHP 7.1.15 (cli) (built: Mar 27 2018 18:02:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

参考URL

OpecacheとAPCuの役割
Zend OPcache
APCu

コード

$ sudo su -

# yum --enablerepo=remi-php71,remi install php-opcache
# service httpd restart

# yum --enablerepo=remi-php71,remi install php-pecl-apcu
# service httpd restart

実行例

インストール前

$ ab -n 100 -c 10 http://xxx
(いろいろ書いてあるので省略、ここだけ見とけばいいって聞きました)
Requests per second:    3749.39 [#/sec] (mean)
Time per request:       2.667 [ms] (mean)

Opecacheインストール後

$ ab -n 100 -c 10 http://xxx
(省略)
Requests per second:    3654.57 [#/sec] (mean)
Time per request:       2.736 [ms] (mean)

さらにAPCuインストール後

$ ab -n 100 -c 10 http://xxx
(省略)
Requests per second:    3675.93 [#/sec] (mean)
Time per request:       2.720 [ms] (mean)

ちなみにこの2つの数字は増えればふえるほどいいらしいです。

Opecache設定も変更して測定

一応設定も変更するかと思いました。
Opecacheの設定はここにあるらしい

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

/押して検索して
opcache.enable_cli=0

opcache.enable_cli=1
に書き換えてサーバーを再起動して再測定

# service httpd restart
$ ab -n 100 -c 10 http://13.230.55.128/
(省略)
Requests per second:    3836.56 [#/sec] (mean)
Time per request:       2.606 [ms] (mean)

やっぱり設定も変更したほうがいいみたいですね…。
しかし誤差の範囲みたいな数値だ。

さらにAPCu設定も変更して測定

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

下記を探して行頭のコメント(;)を外し、右の数値に変更します。
apc.enable_cli=1
apc.shm_size=64M

# service httpd restart
$ ab -n 100 -c 10 http://xxx
(省略)
Requests per second:    3728.84 [#/sec] (mean)
Time per request:       2.613 [ms] (mean)

まとめ

なぜかむしろ下がってる気がするのであまり最新のphpだとむしろインストールしないほうがいいのかな…?
何回か叩くと未インストール状態の数値を下回るんですよね…。
ちなみに作業中にphp5.6が起動してphp7.1が実行されないという謎エラーが発生しました。
(phpもソースが表示されてちょっと怖かったです)
そのせいもあるかもしれません。

対応としては下記を行いました。
phpでインストールされているものを検索

# rpm -qa | grep php

見たらphp56があったので下記でアンインストールして再起動しました。

# sudo yum -y remove php56-*

これで一応php7.1が動きましたが、phpのソースは表示されたまま…。

なので下記サイトに従って設定し直したら無事動きました。なんだったんですかね…。
apacheとphpを入れた環境でphpが動作せずにソースコードのまま表示される時

むしろ上記行った後、両方の設定ファイルが消えてたのでやっぱりそのせいかな。
インストールできないみたいですね。
今度からインストールされるものはきちんと見ようと思います(基本ですよね…)

ちなみにphp7.1にした状態で再測定したらこんなかんじ

# service httpd restart
$ ab -n 100 -c 10 http://xxx
(省略)
Requests per second:    3318.84 [#/sec] (mean)
Time per request:       3.013 [ms] (mean)

うーーーん?

タイトルとURLをコピーしました