单机memcache内存优化效果不如APC、Xcache等php加速扩展

这几天折腾了一下网站的优化,虽然对于中小网站来说,优化没有很大的意义,但至少自己访问速度提升心理还是很爽的。分享一下这次实践过程中积累的一个经验: 单机内存优化memcache效果不如APC、Xcache等php加速扩展 我当前的几个vps和弹性云都是单机服务器,

这几天折腾了一下网站的优化,虽然对于中小网站来说,优化没有很大的意义,但至少自己访问速度提升心理还是很爽的。分享一下这次实践过程中积累的一个经验:

单机内存优化memcache效果不如APC、Xcache等php加速扩展

我当前的几个vps和弹性云都是单机服务器,因此这个问题是有价值的,而且对于90%的站长来说,估计都是用的单机vps,部署集群服务器的草根站长估计不会很多。

1、memcache单机个人使用体会

由于看着discuz官方是用的memcache,因此包括我在内的很多用discuz的站长都用这个内存优化工具,同时wdcp这个被广泛采用的linux面板也集成了memcache,开启非常的方便,所以很多论坛都自然的开启了。

以前包括恒星兼职论坛在内的网站都是开启了这个内存优化,看着底部的数据库查询次数确实有很大的减少,从平均的40次左右下降到10次左右。但是我感觉速度没有很大的提升,反而还不如不用memcache优化时候的速度,并且这种感觉是非常明显的!我随便打开一个页面都要卡一会儿,虽然底部显示的程序运行时间是0.x秒级别,但实际感受根不止,每次都要等很久。

我开始以为是加速乐开启的问题,关闭了加速乐也是一样的慢,关闭了memcache优化后,速度明显有上升,虽然数据库查询次数多了,但实际感受速度快了很多。因此,我琢磨换其它加速工具试试,同时也了解了一下几个加速的异同。

2、memcache加速和APC/Xcache/eAccelerator的异同

这几个都是常用的加速工具,但原理是有一定区别的。

Memcached是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源,即使是UNIX本地连接也一样。 在我之前的测试数据中显示,memcached本地读写速度要比直接PHP内存数组慢几十倍,而APC、共享内存方式都和直接数组差不多。可见,如果只是本地级缓存,使用memcached是非常不划算的。(转的一段话,应该描述是准确的,我看很多朋友都这么说)

APC/Xcache/eAccelerator这3个是php加速工具,加速的是php程序的执行效率,和memcache是有很大区别的。

3、为什么单机服务器不用memcache而要用APC/Xcache/eAccelerator呢

memcache适合多服务器使用,是内存缓存加速,假如是集群服务器部署,那使用memcache会极大的减少数据库查询次数,提升程序实现效率。单机由于memcache需要使用网络资源,反而会降低速度!

但APC/Xcache/eAccelerator是php加速工具,提升的是php代码的执行效率!不管是单机还是集群使用都有效果。

所以在单台服务器的情况下,APC/Xcache/eAccelerator等php加速工具的效果远远高于memcache。

4、实际使用情况评测:Xcache效果好于memcache

由于跟版网是单台西部数码主机(弹性云),符合上述情况。先前开启的是memcache内存优化,实际效果确实不咋的,比不开启任何优化速度还蛮,虽然减少了数据库查询次数,但网页打开速度很慢,甚至慢到我不能忍受的地步,否则我也不会去找这个问题!和换其它的优化加速工具,假如速度可以接受,谁愿意折腾呢?都以论坛首页为例:

单机开启memcache效果:数据库查询次数由40左右下降到10左右,减少的很多,程序执行时间首次x秒左右,第二次开始0.x秒,从来没有达到过0.0x秒级别,实际感受速度那是非常的慢!慢到我无法忍受以至于不得不关闭和更换其它的。

单机开启Xcache效果:数据库查询次数由40左右下降10-20次左右,减少的也不错,但效果不如memcache减少的多,必须承认。发现一个问题,就是每天首次访问网站的时候速度会较慢,达到x秒级别,不知道是否所有php加速都是这样?大部分时候是0.2秒左右,这个比memcache效果好很多了,加快了5倍左右,提升明显;第二次开始下降到0.0x秒,一般在0.05秒左右!继续提升似乎很难了,与硬件的性能有关系。关键是打开网页感受速度有非常大的提升,基本上一点就开,感觉很爽,唰唰的,不像以前要卡顿一下。(至于继续优化到0.00x秒级别,我没那技术,感觉也没那必要,因为0.0x秒以后的提升,人访问已经无法感受出来了!)

单机开启APC/eAccelerator的效果:APC我安装了并且现在用着,效果和Xcache差不多的,都能够达到0.0x秒级别,由于APC不能和zend一起使用,因此我关了(实际我现在也只用了Xcache,和zend一起没测试成功,估计也提升不了多少,懒得折腾了)。eAccelerator我另外一个论坛安装了,速度非常的快,比apc和Xcache效果都要好,但是这个加速工具有些问题,不是很稳定,我放弃了(很多网友都反应eAccelerator单机小流量加速效果比apc和x好多很,有兴趣的朋友可以自己测试哦)。

结论假如你是单台服务器或者vps,那建议使用APC/Xcache/eAccelerator这类php加速工具,而不用要memcache内存优化(相信大多数站长和我一样,都用单台的,而且根本都用不完呢!当然了还有更多的朋友用的虚拟主机,是折腾不了这些优化工具的)。假如你是集群服务器,有负载均衡的,memcache效果要好很多,具体没测试。

同时,在小流量的情况下(1万流量以下的都是小流量网站),php加速工具随便选一个就可以,没有很大的区别,没有必要纠结。

关于内存优化和php加速的几个问题:

1、建议只选一个优化工具:速度是一个方面,稳定性更是压倒一切,小网站还是少折腾,开一个加速工具就行了,安心做内容吧。

2、几个冲突的地方:APC不能和zend一起开启;Xcache可以和zend一起用,但需要先加载Xcache再加载zend(我自己没折腾成,把zend关闭了);APC/Xcache/eAccelerator同时只建议启用一个,多了网站会有问题。

我今天就遇到个奇怪的事情,论坛可以正常打开,但主站后台无法访问,老出现503错误,折腾半天才明白,是因为在php.in里面APC/Xcache/我都开启了,但是论坛程序默认只开启一个优化,所以可以正常访问,但织梦程序似乎都开启了,造成无法访问!关闭了apc后,主站恢复正常了。

不想冲突的最好方法,就是只装一个加速,够用了,而且稳定。

3、php加速是给所有的程序加速,其实memcache也一样,但我起先是折腾论坛的,后来发觉开启Xcache后,织梦后台的速度杠杠的!点击任何一个页面都是瞬开!这倒是么有想到,其实这个问题很傻鸟,因为加速的是php程序,当然这个服务器下面的所有网站都加速了……

4、建议给单机的discuz和wordpress开启至少一个php加速工具,常用的有APC/Xcache/eAccelerator这3个,效率提升效果非常的明显。

5、假如你的网站最终是生成静态的,那就不需要开启任何加速了!比如只有dedecms/phpcms/zblog,并且最后都生成了静态页面(伪静态的话建议开哦),那没有必要做任何的内存优化,这个优化只对动态内容有效果,需要查询数据库的,静态内容是么有用的。能够加速的就是一个后台,没啥意义。

6、不管是linux还是win系统,都是可以安装php加速的。

以上内容,对于老手来说都是很容易甚至很傻的问题,但对于我们自学的草根站长来说,还是要花费一段工夫来了解的,因此记录在这里,给有需要的朋友参考,同时自己也积累点经验,方便以后查阅。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

下载完成后,解压,将memcached目录放到一个盘中,我这里是放在了d盘Webtools目录下,进入 DOS 命令行 然后执行服务注册命令 memcached.exe -d install 卸载服务命令 memcached.exe -d uninstall 然后启动服务 memcached.exe -d start 停止服务 memcached.ex
几天不到已经涨了好几百M了,要重启才能释放内存,请问是啥原因呢? 比apache占用的都多好多
perfmon.exe Windows系统性能监视程序。用于监视CPU使用率、内[存使]用率、硬盘读写速度、网络速度等。 使用方式 perfmon.exe 文件位于C:\Windows\System32目录下。 简单的使用方法: 1)开始 - 运行,输入 perfmon 后回车,即可打开perfmon.exe。 2)在 per
漏洞描述: Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以开放在外网的Memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息。 修复方案: 因Memcached无权限控制功能,所以需要用户对访问来源进
漏洞描述: memcache是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以开放在外网的memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息。 修复方案: 因memcache无权限控制功能,所以需要用户对访问来源进行
当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效、可靠、稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试。