标题:
ZendOpcache 一键安装脚本,LNMP环境下一键安装 Opcache 缓存扩展
[打印本页]
作者:
idc886
时间:
2013-7-13 23:12
标题:
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。[11]1[/11]
Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。
个人理解:
ZendOpcache,属代码驻内存型缓存,比任何硬盘缓存型更快,减少负载,
ZendOpcache会占用一定内存(设多少占多少)。VPS的内存至少256M起。
因缓存更新时间,有些程序不实时刷新。
所以是否选用他,请依程序而定
。
注:使用
ZendOpcache缓存后,
你修改php配制文件,如Dx的config.php
php文件修改后,你需重启php才能立即生效,即重启了
ZendOpcache
不然有时会出错,或过一会才生效。
LNMP ZendOpcache 一键安装脚本
二个安装脚本:一个是只能选装一个缓存扩展的脚本。
一个是与可与xceh一键安装可共存的脚本。 供大家测试。
只能单独安装脚本:
wget http://vps.idc866.com/zendopcache.sh;sh zendopcache.sh
复制代码
可与Xcache一键脚本共存安装的:(经后可能删除)
wget http://vps.idc866.com/opcacheX.sh;sh opcacheX.sh
复制代码
注:此脚本方便两个都想安装的,关于对比测试请看二楼。
与 Xcache共存是否负载、性能更好,需要长期观察才知。暂时不知。
注:
ZendOpcache 支持php5.2/5.3/5.4/5.5,
安装界面:
下载
(43.84 KB)
2013-7-13 23:47
说明:
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
)。[55]3[/55]
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
图片附件:
opcache.jpg
(2013-7-13 23:47, 43.84 KB) / 下载次数 1136
http://idc866.com/attachment.php?aid=2903&k=01e2733108051f06b12c7302a3cece50&t=1732463994&sid=4i3K3e
作者:
idc886
时间:
2013-7-13 23:12
今天测试了一下午。。。
Zend Opcache 还是单独分开安装用好。
如DX程序 单独用 Xcache ,你会发现 查询数小,执行时间小。
再加个 Zend Opcache 后,查询数虽然一样小,
但是执行时间就是 Zend Opcache 的执行时间了。
与 Xcache + eA 一样,两个共存,不能充分体现两个优势。
用压力测试工具, http_load 来测试,就会发现:
1、只安装 Xcache 的DX 会比 Zend Opcache更快,
2、只安装 Xcache 的DX 会比 Xcache + Zend Opcache更快,
3、Xcache + Zend Opcache 会比 只安装Zend Opcache要快点。
4、Zend Opcache 比 eA 感觉要快,Opcache是内存型,eA是硬盘缓存型。
所以,个人认为:
DX这类带数据的推荐单独用 Xcache。(或许DX自身原因不能两个同时发挥)。
纯PHP的程序推荐用 Zend Opcache ,
Zend Opcache 支持 php5.5,目前也只有他支持php5.5。
用WP测试,感觉两者差不多,两个都装上访问速度也都差不多。
难道是新装的没数据?还是要用其它cache 缓存插件才有体现?
用http_load 测试也感觉差不多速度。
不知道用什么来测试比较, 所以也就这样的做个比较。。
如果你有更好的测试、对比方法,请告诉我们。
或许要想知道各种缓存组件的性能差异,只有在大站上才能体现出来吧。
在大站上具体哪个访问更快,哪个负载更好,或是哪几个组合会更快更好,都是慢慢测试
(如InnoDB、memcached只能在大站上才会体现出优势,或加其它缓存会优势+优势)
13.7.16------------------------------------------------简单测试:
digitalocean.com VPS测试:
512M SSD 20G硬盘,Debian 7.0 64位
测试后 还是 + Zend OPcache 在运算上快不少。 同一VPS同一天测试
5.4 无ea
0 0.088秒 0.088秒 0.023秒
1 29毫秒 29毫秒 0.011秒
2 0.06秒 0.059秒 0.022秒
6 0.125秒 0.317秒 0.015秒
8 20.02 毫秒 47.52 毫秒 6.30 毫秒
DX3 0.025(11) 0.035(15) 0.050(22) php5.4 无 xca 无ea
bench55.php: 2.818
DX3 0.005(2) 0.009(6) 0.015(7) php5.4 + xca
无ea
5.4 + ea10
0 0.059秒 0.068秒 0.023秒
1 19毫秒 19毫秒 0.012秒
2 0.059秒 0.059秒 0.023秒
6 0.09秒 0.322秒 0.013秒
8 15.94 毫秒 43.76 毫秒 6.70 毫秒
DX3 0.020(11) 0.027(15) 0.038(22) php5.4 + ea
bench55.php: 2.671
5.4 + zenca
0 0.057秒 0.059秒 0.023秒
1 20毫秒 20毫秒 0.011秒
2 0.059秒 0.06秒 0.024秒
6 0.09秒 0.313秒 0.015秒
8 15.10 毫秒 41.37 毫秒 6.49 毫秒
DX3 0.012(11) 0.015(15) 0.019(22) php5.4 + zenca
bench55.php: 2.671
php5.5 无 OPcache
0 0.09秒 0.099秒 0.023秒
1 30毫秒 30毫秒 0.011秒
2 0.060秒 0.06秒 0.026秒
6 0.128秒 0.318秒 0.016秒
8 21.56 毫秒 43.85 毫秒 5.67 毫秒
dx3 0.024(8) 0.034(11) 0.047(19)
bench55.php: 2.701
php5.5 + Zend OPcache
0 0.06秒 0.059秒 0.022秒 0-8探针下检测数据。
1 20毫秒 20毫秒 0.012秒
2 0.061秒 0.06秒 0.024秒
6 0.093秒 0.31秒 0.016秒
8 15.74 毫秒 41.83 毫秒 6.23 毫秒
dx3 0.009(8) 0.011(11) 0.015(19) 主页、版块、贴子的执行时间和查询数
simple 0.106 php5.5 下的自带测试脚本 bench55.php
simplecall 0.127
simpleucall 0.135
simpleudcall 0.132
mandel 0.292
mandel2 0.352
ackermann(7) 0.153
ary(50000) 0.024
ary2(50000) 0.022
ary3(2000) 0.172
fibo(30) 0.406
hash1(50000) 0.036
hash2(500) 0.038
heapsort(20000) 0.092
matrix(20) 0.099
nestedloop(12) 0.180
sieve(30) 0.109
strcat(200000) 0.014
------------------------
Total 2.509 (2.5秒完成)
检测以上的简单测试能看出。
php5.4 与php5.5 性能比较差别不大。 php5.5略好点
zenca 与 ea 运算速度,比较差别不大。 zenca略好点
但是 在DX3比较查询数 和执行时间,
php5.5 + Zend OPcache 都不如
php5.4 + xca
可以看出 数据交互型程序需要数据型缓存效果会更佳
作者:
cjwbbs
时间:
2013-7-14 09:18
我本来也做好了的,没有发出来。。。。。(睡太早了,忘记了)
嗯,我也是和xcache共存玩的,这样子更好!和memcache共存太费了!
作者:
leisun321
时间:
2013-7-14 13:10
本帖最后由 leisun321 于 2013-7-14 13:13 编辑
能不能搞个卸载 zend opcache的脚本啊??
作者:
idc886
时间:
2013-7-14 14:44
回复
4#
leisun321
你没认真看哦,这个脚本本就自带 安装和删除呀。。。
运行时 按0 即可删除。。说明里都说了的哦。
不过,只能使用我们提供的脚本安装的,才可用他删除。
你自己的动添加的,或许代码位置不同。
作者:
leisun321
时间:
2013-7-14 16:52
回复
5#
idc886
哦 我还没用 过会试试
作者:
leisun321
时间:
2013-7-14 16:58
回复
5#
idc886
我把Xcache 卸了 感觉卸载了 快多了
我装
ZendOpcache 试试
作者:
leisun321
时间:
2013-7-14 17:04
本帖最后由 leisun321 于 2013-7-14 17:09 编辑
卸掉了 网页东西删除了 刷新网页又是没删除 被缓存了
又装回xcache 了
作者:
myniejianping
时间:
2013-7-14 19:38
围观................................
作者:
idc886
时间:
2013-7-15 06:50
回复
8#
leisun321
你用的是什么程序?
删除 Xcache 还是更快?
如果是DX, 在安装与 不安装 Xcache 对比下, 查看右下角的执行时间 和 查询次数。
如果只是用探针 测试运算速度的话, 装上 Opcache 会更快 (提升1/3)。
还有你说的删除网页,刷新了还在?? Opcache 还会这样? 这个我得试试
确认一下,你用的程序是DX么? 是不是用了CDN??
作者:
leisun321
时间:
2013-7-15 15:25
回复
10#
idc886
我那个挂Q的程序 我把挂着的Q删了 但是刷新网页显示 还是挂着的 但数据库里面已经删掉了
作者:
idc886
时间:
2013-7-16 17:44
回复
11#
leisun321
哦 你的挂Q程序, 经常在换数据的呀。
还有,只挂Q的,用Xcache没用吧,还得程序支持。
或许选择ea 会感觉更快点。也能实时更新。
看来,这个 ZendOpcache 是特定用途的。不能实时更新吧。
里面有一个缓存时间设置,,看一楼中收集的内容中,人家就做了一个测试,
修改php代码后,显示结果还是一样,被缓存了。
不过,我测试论坛,发贴回贴都是实时更新。
看来这个 ZendOpcache ,得用在那种特定页上才好。
如不经常更新的,也不用实时更新的页。
呵,我的程序一般都是 纯PHP,不用经常更新的。
所以都用PHP5.5+ZendOpcache正好。 直接读内存的缓存速度绝对的快。。
而且 ZendOpcache 这个设置多少内存就会先占去。 跟memcached一样
所以,小内存就玩不起。
现把一键安装包再修改为,可设置内存大小,缓存时间。 好更灵活使用。
作者:
leisun321
时间:
2013-7-17 10:20
回复
12#
idc886
恩 这个给不怎么动数据的 确实不错 我就用不了了
作者:
刺客天宇
时间:
2013-7-30 19:09
如果可以在openshift上装zend那就太好了
作者:
hazefly
时间:
2013-8-4 16:04
需要与Xcache本共存的怎么办?
作者:
idc886
时间:
2013-8-23 12:39
这两天,把 VPS上都装上了这个 ZendOpcache 缓存, 性能非常好。
所用的环境是 LNMP PHP5.5.2 + ZendOpcache ,DS的VPS,用到10多G每天,负载都很少超1 的。
虽然 有个 APCu 也支持 PHP5.5 但我使用的程序都是不用数据库型程序的。
所以,使用ZendOpcache 来缓存代码 是非常好的。 性能胜出 APCu
可能使用 数据库的,如DX论坛。使用 APCu 或是负载等会好点吧。不
过未测试过DX有流量的站。
等以后有站了再测试。
作者:
roger
时间:
2013-9-21 12:08
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者:
kxin
时间:
2013-10-6 23:43
非常好的教程,必须学习,安装最新版本
作者:
诗战
时间:
2013-10-14 05:07
谢谢楼主分享!!!!!!!!!
作者:
小石头
时间:
2013-10-20 22:57
谢谢分享,
作者:
大傻兔
时间:
2013-12-6 22:10
回复
12#
idc886
我非常的喜好呵呵加油
作者:
yunxianboy
时间:
2014-5-1 20:16
我来看看
欢迎光临 免费国外空间,国外免费空间, (http://idc866.com/)
Powered by Discuz! 7.2