1.APC をインストール
わたくしは PHP のインストールを Remi リポジトリを通して行いました。APC は PHP を補強するなにかにあたりますので、APC のインストールも Remi から行います。Remi からといいつつ、いつもの癖で導入したリポジトリ 3 種とも指定していますけれども、そこはご愛嬌です♪その時のログは次のようになりました!
[root@localhost ~]# yum --enablerepo=epel,remi,rpmforge install php-pecl-apc Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * epel: ftp.riken.jp * extras: mirror.fairway.ne.jp * remi: fr2.rpmfind.net * rpmforge: mirror.fairway.ne.jp * updates: mirror.fairway.ne.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-pecl-apc.i386 0:3.1.14-1.el5.remi set to be updated --> Processing Dependency: /usr/bin/pecl for package: php-pecl-apc --> Running transaction check ---> Package php-pear.noarch 1:1.9.4-12.el5.remi.1 set to be updated --> Finished Dependency Resolution Dependencies Resolved =============================================================================================== Package Arch Version Repository Size =============================================================================================== Installing: php-pecl-apc i386 3.1.14-1.el5.remi remi 180 k Installing for dependencies: php-pear noarch 1:1.9.4-12.el5.remi.1 remi 422 k Transaction Summary =============================================================================================== Install 2 Package(s) Upgrade 0 Package(s) Total download size: 602 k Is this ok [y/N]: y Downloading Packages: (1/2): php-pecl-apc-3.1.14-1.el5.remi.i386.rpm | 180 kB 00:01 (2/2): php-pear-1.9.4-12.el5.remi.1.noarch.rpm | 422 kB 00:01 ----------------------------------------------------------------------------------------------- Total 131 kB/s | 602 kB 00:04 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : php-pear 1/2 Installing : php-pecl-apc 2/2 Installed: php-pecl-apc.i386 0:3.1.14-1.el5.remi Dependency Installed: php-pear.noarch 1:1.9.4-12.el5.remi.1 Complete! [root@localhost ~]#
以前の投稿、【PHP】APC のインストール方法整理!【CentOS 5.9】 | oki2a24 にて php-pecl-apc だけ yum でインストールしようとすれば OK!、PEAR も勝手にインストールされます、と述べました。今回のインストールの記録を見てみますと確かに依存の関係で php-pear もインストールされています。
APC をインストールするには PECL のインストールが必要で、PECL をインストールするには PEAR のインストールが必要なのです。
ですので違った視点から見れば、APC を yum でインストールすれば PECL も PEAR もインストールされます。
2.APC がインストールされたか確認(3つの方法♪)
yum で php-pecl-apc をインストールしましたので、PECL もインストールされています。この PECL コマンドを使用して、APC がインストールされているかどうかを確かめることができます。
[root@localhost ~]# pecl list-all | grep APC pecl/APC 3.1.14 Alternative PHP Cache [root@localhost ~]#
また、PHP でも APC のインストールを確認することができます。ひとつ目は、インストールされているモジュール一覧を確認する方法です。バージョンなどはわかりませんけれども、導入されているかいないかは確認することができました。
[root@localhost ~]# php -m | grep apc apc [root@localhost ~]#
ふたつ目は、phpinfo 関数を書いたファイルにウェブブラウザからアクセスする方法もありますけれども、今回はもっとお手軽に php コマンドを使用して APC インストールを確認します。
[root@localhost ~]# php -i | grep apc Additional .ini files parsed => /etc/php.d/apc.ini, apc MMAP File Mask => /tmp/apc.XXXXXX apc.cache_by_default => On => On apc.canonicalize => Off => Off apc.coredump_unmap => Off => Off apc.enable_cli => Off => Off apc.enabled => On => On apc.file_md5 => Off => Off apc.file_update_protection => 2 => 2 apc.filters => no value => no value apc.gc_ttl => 3600 => 3600 apc.include_once_override => Off => Off apc.lazy_classes => Off => Off apc.lazy_functions => Off => Off apc.max_file_size => 1M => 1M apc.mmap_file_mask => /tmp/apc.XXXXXX => /tmp/apc.XXXXXX apc.num_files_hint => 1024 => 1024 apc.preload_path => no value => no value apc.report_autofilter => Off => Off apc.rfc1867 => Off => Off apc.rfc1867_freq => 0 => 0 apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS apc.rfc1867_prefix => upload_ => upload_ apc.rfc1867_ttl => 3600 => 3600 apc.serializer => default => default apc.shm_segments => 1 => 1 apc.shm_size => 64M => 64M apc.shm_strings_buffer => 4M => 4M apc.slam_defense => On => On apc.stat => On => On apc.stat_ctime => Off => Off apc.ttl => 7200 => 7200 apc.use_request_time => On => On apc.user_entries_hint => 4096 => 4096 apc.user_ttl => 7200 => 7200 apc.write_lock => On => On [root@localhost ~]#
apc.enabled がポイントで、On になってれば APC は有効になっています。他の設定オプションはこちらの公式ページを参照してくださいませ。
ただし、yum で APC をインストール後、Apache を再起動しないと APC を有効にした設定が反映されません!実はわたくし、APC のインストールだけで満足してしまい、効果を測定してちっとも改善されませんでナンデ???としばらくあたふたしておりました。
次のコマンドで Apache 再起動だ♪
[root@localhost ~]# /etc/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ] [root@localhost ~]#
APC インストール前後で効果を測定
結論から先に書きますと、APC を入れるだけで Apache Bench で処理能力向上の効果が確認できました。
- Failed requests に目立った変化はなかった。
- Requests per second の値が向上した。APC 導入の効果あり。
APC 導入前の結果です。
- Failed requests: 53
- Requests per second: 4.25 [#/sec] (mean)
[root@localhost ~]# ab -n 100 -c 10 http://192.168.56.111/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.56.111 (be patient).....done Server Software: Apache Server Hostname: 192.168.56.111 Server Port: 80 Document Path: / Document Length: 40691 bytes Concurrency Level: 10 Time taken for tests: 23.554106 seconds Complete requests: 100 Failed requests: 53 (Connect: 0, Length: 53, Exceptions: 0) Write errors: 0 Total transferred: 4087065 bytes HTML transferred: 4069365 bytes Requests per second: 4.25 [#/sec] (mean) Time per request: 2355.411 [ms] (mean) Time per request: 235.541 [ms] (mean, across all concurrent requests) Transfer rate: 169.44 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 13 44.0 0 153 Processing: 218 2286 3151.9 1995 23400 Waiting: 168 1986 3154.1 1588 23347 Total: 218 2300 3159.4 2049 23553 Percentage of the requests served within a certain time (ms) 50% 2049 66% 2269 75% 2358 80% 2533 90% 2819 95% 4570 98% 15602 99% 23553 100% 23553 (longest request) [root@localhost ~]#
APC 導入後はこうなりました。
- Failed requests: 51
- Requests per second: 7.78 [#/sec] (mean)
Requests per second が APC インストール前よりもおよそ 3 向上しています!導入前が 4 でしたので、ほぼ 2 倍と考えることもできますけれども、そんなに都合の良いおはなしはそうそう無いでしょうから、おそらく倍と言うよりもプラス 3 になったと思っておくことにいたします。
おわりに
本投稿は次のページの続きとなります。ゼロの状態から大分進みまして、わたくし、嬉しいです♪
APC はお手軽にインストールできて効果もありそうですので、入れられる環境には導入するのがよさそうです。PEAR に PECL と少しだけ複雑ですけれども、一度理解してしまえば導入は簡単です♪
Apache Bench で測定したページは開発環境の WordPress トップページです。ですので本ブログを置かせていただいておりますサーバにも APC を導入しようと考えております。
最後に、参考にさせていただいたページを紹介させていただきまして終わりといたします。ありがとうございます!
以上です。
「【PHP】APC のインストールして確認して効果を実感!しました!【CentOS 5.9】」への4件の返信
[…] 【PHP】APC のインストールして確認して効果を実感!しました!【CentOS 5.9】 | oki2a24 […]
[…] 【PHP】APC のインストールして確認して効果を実感!しました!【CentOS 5.9】 | oki2a24 […]
[…] 参考:https://oki2a24.com/2013/03/28/apc-is-nice/ […]
[…] 【PHP】APC のインストールして確認して効果を実感!しました!【CentOS 5.9】 […]