PHP Opcode缓存加速组件:APC详解详解
发布时间:2022-07-02 17:22:50 所属栏目:PHP教程 来源:互联网
导读:PHP在性能上相对于其他编译型语言来说算不上突出,但是使用了Opcode缓存后性能提升还是很明显的。常见的缓存加速组件主要有 eAccelerator,XCache,APC本文主要介绍APC的安装使用。 用户数据缓存 缓存由用户在编写PHP代码时用apc_store和apc_fetch函数操作读
PHP在性能上相对于其他编译型语言来说算不上突出,但是使用了Opcode缓存后性能提升还是很明显的。常见的缓存加速组件主要有 eAccelerator,XCache,APC本文主要介绍APC的安装使用。 用户数据缓存 缓存由用户在编写PHP代码时用apc_store和apc_fetch函数操作读取、写入的。如果数据量不大的话,可以一试。如果数据量大,使用类似memcache此类的更加专著的内存缓存方案会更好。 APC模块的安装 最简单的方法是直接使用pecl,在命令行下输入:/usr/local/php/bin/pecl install apc 然后按照提示一步步完成即可,示例如下: [root@iZ23bm1tc0pZ ~]# /usr/local/php/bin/pecl install apc Enable internal debugging in APC [no] : no Enable per request file info about files used from the APC cache [no] : no Enable spin locks (EXPERIMENTAL) [no] : no Enable memory protection (EXPERIMENTAL) [no] : no Enable pthread mutexes (default) [no] : no Enable pthread read/write locks (EXPERIMENTAL) [yes] : yes 然后重启服务器即可: lnmp nginx restart 先看一下没有使用apc情况下的压测结果: [root@iZ23bm1tc0pZ ~]# ab -n1000 -c100 http://zfsphp.cn/index.php HTML transferred: 14341000 bytes Requests per second: 64.45 [#/sec] (mean) Time per request: 1551.671 [ms] (mean) Time per request: 15.517 [ms] (mean, across all concurrent requests) Transfer rate: 915.34 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 2 4.8 0 17 Processing: 46 1481 277.0 1560 1638 Waiting: 42 1481 277.1 1560 1638 Total: 58 1482 272.8 1560 1638 Percentage of the requests served within a certain time (ms) 50% 1560 66% 1576 75% 1582 80% 1587 90% 1602 95% 1612 98% 1622 99% 1629 100% 1638 (longest request) 可见最大吞吐率只有64.45reqs/s 然后我们开启apc,测试结果如下: [root@iZ23bm1tc0pZ ~]# ab -n1000 -c100 http://phpfensi.com/index.php This is ApacheBench, Version 2.3 <$Revision: 1706008 $> Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx Server Hostname: zfsphp.cn Server Port: 80 Document Path: /index.php Document Length: 14341 bytes Concurrency Level: 100 Time taken for tests: 7.122 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 14544000 bytes HTML transferred: 14341000 bytes Requests per second: 140.41 [#/sec] (mean) Time per request: 712.189 [ms] (mean) Time per request: 7.122 [ms] (mean, across all concurrent requests) Transfer rate: 1994.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 2.4 0 10 Processing: 23 677 125.3 705 775 Waiting: 22 677 125.4 705 775 Total: 30 678 123.1 705 775 Percentage of the requests served within a certain time (ms) 50% 705 66% 719 75% 726 80% 730 90% 742 95% 750 98% 760 99% 765 100% 775 (longest request) 可见吞吐率提高了一倍多,达到140.41reqs/s,然后,我们在开启动态内容缓存(楼主的博客用的是Smarty缓存),测试结果如下: [root@iZ23bm1tc0pZ ~]# ab -n1000 -c100 http://phpfensi.com/index.php This is ApacheBench, Version 2.3 <$Revision: 1706008 $> Finished 1000 requests Server Software: nginx Server Hostname: zfsphp.cn Server Port: 80 Document Path: /index.php Document Length: 14341 bytes Concurrency Level: 100 Time taken for tests: 2.263 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 14544000 bytes HTML transferred: 14341000 bytes Requests per second: 441.98 [#/sec] (mean) Time per request: 226.255 [ms] (mean) Time per request: 2.263 [ms] (mean, across all concurrent requests) Transfer rate: 6277.49 [Kbytes/sec] received 99% 243 100% 255 (longest request) 这一次吞吐率居然达到441.98reqs/s,提高了三倍多,相比最初的64.45reqs/s提高了近7倍,可见使用apc的opcode缓存配合Smarty缓存,对网站性能的优化效果还是相当明显的。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |