加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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缓存,对网站性能的优化效果还是相当明显的。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读