返回列表 发帖

ZendOpcache 一键安装脚本,LNMP环境下一键安装 Opcache 缓存扩展

相关贴:
LNMP 0.9.1 延伸版发布, 可直接选择安装最新PHP版本,nginx版本,mysql版本等

大话VPS – Zend Opcache安装教程(1)

              

ZendOpcache作用:
Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具。现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache。免费空间1

Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。

个人理解:ZendOpcache,属代码驻内存型缓存,比任何硬盘缓存型更快,减少负载,
               ZendOpcache会占用一定内存(设多少占多少)。VPS的内存至少256M起。
               因缓存更新时间,有些程序不实时刷新。 所以是否选用他,请依程序而定
              
注:使用ZendOpcache缓存后,你修改php配制文件,如Dx的config.php        
      php文件修改后,你需重启php才能立即生效,即重启了ZendOpcache
        不然有时会出错,或过一会才生效。




LNMP  ZendOpcache 一键安装脚本

二个安装脚本:一个是只能选装一个缓存扩展的脚本。
                    一个是与可与xceh一键安装可共存的脚本。 供大家测试。

只能单独安装脚本:
  1. wget http://vps.idc866.com/zendopcache.sh;sh zendopcache.sh
复制代码


可与Xcache一键脚本共存安装的:(经后可能删除)
  1. wget http://vps.idc866.com/opcacheX.sh;sh opcacheX.sh
复制代码

注:此脚本方便两个都想安装的,关于对比测试请看二楼。
      与 Xcache共存是否负载、性能更好,需要长期观察才知。暂时不知。

注:ZendOpcache 支持php5.2/5.3/5.4/5.5,




安装界面:

opcache.jpg


说明:

1、可选项1、0,   1为安装,0为删除。 默认为 1, 即安装。
本贴隐藏内容,需登录、回复后,即可浏览!

注:此脚本在军哥LNMP 0.8/0.9/1.0 版本下都完全兼容。



更新记录:
2013.07.13   推出 ZendOpcache 一键安装脚本,代码内存型高速缓存。支持php5.5

2013.07.16   增加内存、和缓存时间输入选项,让使用更灵活。




错误代码:

Tue Jul 16 20:34:01 2013 (15652): Fatal Error Unable to allocate shared memory segment of 99614720 bytes: mmap: No space left on device

这个代码出现在 执行 php-v 时显示。  
原因是 ZendOpcache 设置的内存过多,无法分配而出现错误。
以上为在256M OVZ的VPS上设置 ZendOpcache 内存为100M,而出现了这错误。

解决办法:执行一下删除,后再重新安装,安装时把内存值调小。






个人见解,如有不同欢迎提出:

感觉 ZendOpcache 与 新版eaccelerator  做用一样,都是代码型缓存(无数据缓存)。
只不过 ZendOpcache 是以内存缓存,性能会更快。
而eaccelerator是以硬盘形式缓存(用的系统内存很小,分生成很多缓存文件)。

与 Xcache 有点不同,Xcache即带有PHP代码缓存,还有数据变量缓存做用。
只不过,个人感觉 Xcache 对PHP代码缓存性能 不如ZendOpcache,
性能对比可从PHP探针下的运算测试对比出来。


所以具体选用什么缓存扩展,可根据程序而定。 纯PHP程序推荐用ZendOpcache。




还有一个问题,需要以后慢慢测试:  

opcache.memory_consumption=64       设置缓存内存
opcache.max_accelerated_files=4000    设置缓存文件个数
opcache.force_restart_timeout=180     设置缓存时间

这三个参数,如果缓存文件超过内存设的64M了,会重启缓存全部重新开始?
如果缓存文件数超过 4000个了,会重启缓存,全部重新开始?
如果缓存时间过了180秒,又会重新缓存一个? 越长越好么?

这几个参数还得慢慢使用中检测。

那么:页面数小、访问大,数据不时常需要更新的(几天或更长)使用这缓存应该不错。
         如果访问量大,页面数多常常超过缓存文件数,或是内存过少常超过,
         那不是缓存器会经常重启?
         如果设2天过期,但由于以上两原因导致10分钟重启重新缓存的话,
         由于频繁重启,那么,可能还不如使用磁盘缓存器,只要有空间就可长久缓存。

  所以,这个缓存扩展,
       根据页面数设内存大小。(能把访问的页都缓存下来,且要考虑VPS内存大小) 。
       要根据程序,设缓存时间。(不实时更新的页,越长应该越好)。
       这样才能体现其性能
      
以上个人见解,如有不同欢迎提出。




官方地址:http://pecl.php.net/package/ZendOpcache/    查看最新版号


使用 Zend Opcache 加速 PHP
1. 什么是 opcode 缓存?
当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache 的目地是避免重复编译,减少 CPU 和内存开销。如果动态内容的性能瓶颈不在于 CPU 和内存,而在于 I/O 操作,比如数据库查询带来的磁盘 I/O 开销,那么 opcode cache 的性能提升是非常有限的。但是既然 opcode cache 能带来 CPU 和内存开销的降低,这总归是好事 —— 本着环保的态度,也应该尽量减少消耗不是?
现代操作码缓存器(Optimizer+,APC2.0+,其他)使用共享内存进行存储,并且可以直接从中执行文件,而不用在执行前“反序列化”代码。这将带来显着的性能加速,通常降低了整体服务器的内存消耗,而且很少有缺点。



Optimizer+ 相对 APC 的优点

   1. 性能。根据测试,Zend Optimizer+ 始终优于 APC。随代码差异,每秒钟处理的请求数高 5~20%。Google doc 上记录的测试结果中,WordPress 2.1.1(不知道为什么不用个新版本的 WP 来测试),性能提高约 8%。理论上来说,对于 WP 3.5.1,性能应该也能得到大约 5~10% 的提升吧。对于运行 WordPress 的服务器而言,使用 Optimizer+ 可以显著降低 CPU 使用率和提高页面加载速度(graphics here)。 免费PHP空间
   2. 支持新的PHP 版本。Zend和PHP 社区都会帮助Optimizer+能够支持最新版本的PHP。
   3. 可靠性。Optimizer+拥有可选的损坏检测能力,可防止因数据损坏而导致的服务器崩溃
   4. 更好的兼容性。PHP 社区打算让 Optimizer+ 与社区支持的所有 PHP 版本相兼容。


APC 相对 Optimizer+ 的优势
   1. APC 有数据缓存 API,而 Optimizer+ 没有。

   2. APC 能够回收旧的无效的脚本占用的内存。APC 有内存管理器,可以将那些不再使用的脚本关联的内存进行回收。而 Optimizer+ 不同,它将这样的内存标记为“脏的”,但并不会回收它们。一旦“脏的”内存占用配置阈值的百分比达到一定值,Optimizer+ 就将自己重新启动。这种行为在稳定性上既有优势也有劣势。



注意:Zend Opcache 与 eaccelerator 相冲突。要安装 Zend Opcache,
可能需要先卸载 eaccelerator —— 如果你用了这个加速模块的话。
安装前最好先删除 eacceleratro、xcache 或 apc 等组件。
注:APC 很多人用着常出502。PHP挂了。

Zend Opcache 已经集成在了PHP 5.5里面,
编译安装PHP5.5的时候加上--enable-opcache就行了 ,

使用opcache会提高php的性能,你可以和其他扩展一样静态编译(--enable-opcache)
或者动态扩展(zend_extension)加入这个优化项 (需修改php.ini 加入代码)。


相关贴:http://cnzhx.net/blog/zendopcache-accelerate-php/






在phpinfo()信息中, 目前来看有两条信息犹为重要:
Cache hits (高级缓存命中)
Cache misses (高级缓存未命中)
在这两条信息中即可观察缓存运行情况, 一目了然
高速缓存带来哪些优化呢? 对代码运行有多大帮助?
我们做个测试, 验证一下什么是opcache.

< ?php
echo “opcache”;
?>

这是一段非常简单的php代码, 请保存为demo.php文件然后访问, 随意刷新, Cache hits数值会不停地增加, 说明起作用了,
然后你修改代码为:

< ?php
echo “cache new”;
?>

                         注意代码中的" ,可能你复制过去就会成了全角的“ 你必需改为半角"

再刷新demo.php, 应该可以看到效果, 打印出来的值仍然是opcache, 即源码被缓存了, 它不再解析demo.php文件, 试着不停地刷新, 检测多少秒后才更新.

可设置: opcache.force_restart_timeout=180 的时间来控制更新速度.

这就类似于web项目中的静态文件缓存一下, 比如我们加载一个网页, 浏览器会自动帮我们把jpg, css缓存起来, 唯独php没有缓存, 每次均需要open文件, 解析代码, 执行代码这一过程, 而opcache即可解决这个问题, 代码会被高速缓存起来, 提升访问速度.

相关贴:http://www.oschina.net/question/998019_110792
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
★ 11月开空间新规则,百度GG收录百贴:http://idc866.com/thread-15155-1-1.html
★ 本站转型:推荐免费空间,收集免费空间,免费空间测试,并提供原创申请教程。
★ 免备案空间,免费空间,免费国外空间,国外免费空间,免费美国空间
★ 我们是一群辛勤的小站站长,我们需要团结,我们需要共同进步!!!!
★ 达要求开空间,论坛发申请贴后,请加QQ:876812422  (一般在线、有Q必回)

TOP

回复 12# idc886

我非常的喜好呵呵加油

TOP

谢谢分享,

TOP

谢谢楼主分享!!!!!!!!!

TOP

非常好的教程,必须学习,安装最新版本

TOP

的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

TOP

这两天,把 VPS上都装上了这个 ZendOpcache 缓存,  性能非常好。

所用的环境是  LNMP PHP5.5.2 + ZendOpcache ,DS的VPS,用到10多G每天,负载都很少超1 的。

虽然  有个 APCu  也支持 PHP5.5 但我使用的程序都是不用数据库型程序的。
所以,使用ZendOpcache 来缓存代码 是非常好的。  性能胜出 APCu

可能使用 数据库的,如DX论坛。使用 APCu 或是负载等会好点吧。不
过未测试过DX有流量的站。
等以后有站了再测试。
★ 11月开空间新规则,百度GG收录百贴:http://idc866.com/thread-15155-1-1.html
★ 本站转型:推荐免费空间,收集免费空间,免费空间测试,并提供原创申请教程。
★ 免备案空间,免费空间,免费国外空间,国外免费空间,免费美国空间
★ 我们是一群辛勤的小站站长,我们需要团结,我们需要共同进步!!!!
★ 达要求开空间,论坛发申请贴后,请加QQ:876812422  (一般在线、有Q必回)

TOP

需要与Xcache本共存的怎么办?

TOP

如果可以在openshift上装zend那就太好了

TOP

回复 12# idc886


   恩  这个给不怎么动数据的  确实不错   我就用不了了
www.76lt.com

TOP

回复 11# leisun321


    哦 你的挂Q程序, 经常在换数据的呀。     
还有,只挂Q的,用Xcache没用吧,还得程序支持。
或许选择ea 会感觉更快点。也能实时更新。


看来,这个  ZendOpcache  是特定用途的。不能实时更新吧。

里面有一个缓存时间设置,,看一楼中收集的内容中,人家就做了一个测试,
修改php代码后,显示结果还是一样,被缓存了。

不过,我测试论坛,发贴回贴都是实时更新。


看来这个 ZendOpcache ,得用在那种特定页上才好。
如不经常更新的,也不用实时更新的页。

呵,我的程序一般都是 纯PHP,不用经常更新的。   
所以都用PHP5.5+ZendOpcache正好。 直接读内存的缓存速度绝对的快。。


而且 ZendOpcache 这个设置多少内存就会先占去。 跟memcached一样
所以,小内存就玩不起。  

现把一键安装包再修改为,可设置内存大小,缓存时间。  好更灵活使用。
★ 11月开空间新规则,百度GG收录百贴:http://idc866.com/thread-15155-1-1.html
★ 本站转型:推荐免费空间,收集免费空间,免费空间测试,并提供原创申请教程。
★ 免备案空间,免费空间,免费国外空间,国外免费空间,免费美国空间
★ 我们是一群辛勤的小站站长,我们需要团结,我们需要共同进步!!!!
★ 达要求开空间,论坛发申请贴后,请加QQ:876812422  (一般在线、有Q必回)

TOP

回复 10# idc886


   我那个挂Q的程序  我把挂着的Q删了  但是刷新网页显示 还是挂着的  但数据库里面已经删掉了
www.76lt.com

TOP

回复 8# leisun321


    你用的是什么程序?   

删除 Xcache  还是更快?  

如果是DX,  在安装与 不安装 Xcache 对比下,  查看右下角的执行时间 和 查询次数。

如果只是用探针 测试运算速度的话, 装上 Opcache  会更快 (提升1/3)。


还有你说的删除网页,刷新了还在??  Opcache 还会这样?  这个我得试试
确认一下,你用的程序是DX么?    是不是用了CDN??
★ 11月开空间新规则,百度GG收录百贴:http://idc866.com/thread-15155-1-1.html
★ 本站转型:推荐免费空间,收集免费空间,免费空间测试,并提供原创申请教程。
★ 免备案空间,免费空间,免费国外空间,国外免费空间,免费美国空间
★ 我们是一群辛勤的小站站长,我们需要团结,我们需要共同进步!!!!
★ 达要求开空间,论坛发申请贴后,请加QQ:876812422  (一般在线、有Q必回)

TOP

围观................................

TOP

本帖最后由 leisun321 于 2013-7-14 17:09 编辑

卸掉了  网页东西删除了 刷新网页又是没删除  被缓存了

又装回xcache 了
www.76lt.com

TOP

回复 5# idc886


   我把Xcache  卸了  感觉卸载了  快多了

我装 ZendOpcache    试试
www.76lt.com

TOP

回复 5# idc886


   哦  我还没用  过会试试
www.76lt.com

TOP

回复 4# leisun321


    你没认真看哦,这个脚本本就自带  安装和删除呀。。。  

运行时 按0  即可删除。。说明里都说了的哦。

不过,只能使用我们提供的脚本安装的,才可用他删除。

你自己的动添加的,或许代码位置不同。
★ 11月开空间新规则,百度GG收录百贴:http://idc866.com/thread-15155-1-1.html
★ 本站转型:推荐免费空间,收集免费空间,免费空间测试,并提供原创申请教程。
★ 免备案空间,免费空间,免费国外空间,国外免费空间,免费美国空间
★ 我们是一群辛勤的小站站长,我们需要团结,我们需要共同进步!!!!
★ 达要求开空间,论坛发申请贴后,请加QQ:876812422  (一般在线、有Q必回)

TOP

本帖最后由 leisun321 于 2013-7-14 13:13 编辑

能不能搞个卸载  zend opcache的脚本啊??
www.76lt.com

TOP

返回列表