code人生 / 生活随笔 · 2013 年 5 月 29 日 6

LNMP下从eAccelerator换到Xcache

自从从BurstNet搬家到Hostigation以后,网速确实快了很多,但是价格差不多的情况下内存小了,从512M到了256M,怎么最大程度地压榨机器性能就成了个头疼的问题,现在装了一个军哥的LNMP一键安装包,跑着四个站,感觉就是随时都要宕机,事实上也差不多,经常出现一些500错误,一不小心内存使用就跑到240M以上了,Wordpress嘛,大家都懂的,还是过于庞大了。

之前安装LNMP时,就一口气把eAccelerator,ionCube这些一口气地全部安装上去了,可是后来查看指针却发现全部不能用,php.ini里面的配置也没有问题,百思不得其解,直到一次看到一篇文章说LNMP环境下升级PHP必须先卸载eAccelerator,升级成功之后再重新安装,才发现是PHP的问题,因为安装LNMP之后是先安装eAccelerator的,后来升级PHP导致版本对不上,所以eAccelerator不能使用了。所以LNMP下发现eAccelerator不能用的哥们,直接重装一次就行了,覆盖过去,压力不大。

不过查了一下,发现eAccelerator基本上已经处于半死的状态,没啥活力了,估计不久之后就会被开发者完全放弃,而APC被PHP列为默认的模块,很容易部署,Xcache则是国人开发的,性能相比前两者也更有优势,更新频繁,所以决定最终采用Xcache,从安装之后的对比来说,Xcache确实比eAccelerator,在我机子上可以省下大概40~50M的内存(搬走一个几乎无流量的WP站点之后的比较,可能不准确)。

Debian和CentOS下的LNMP环境搭建Xcache非常简单,因为有人做好了一键安装包。。。。不过安装LNMP大多是小内存低配置机器吧,估计Debian居多。根据一键安装包安装,几乎不会出错,不过不知道是我的机子比较特殊还是网上大部分的教程都是有问题的,我修改php.ini之后重启php-fpm总是不能提供,显示位置错误,不过根据安装成功时提供的信息来看,我添加的信息应该没有错,确实是/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/  。大部分教程给出的代码是这样的:

[xcache-common] 
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so

[xcache.admin] 
; Change xcache.admin.user to your preferred login name 
xcache.admin.user = "admin" 
; Change xcache.admin.pass to the MD5 fingerprint of your password 
; Use md5 -s "your_secret_password" to find the fingerprint 
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e" 

[xcache] 
; Change xcache.size to tune the size of the opcode cache 
xcache.size = 24M 
xcache.shm_scheme = "mmap" 
xcache.count = 2 
xcache.slots = 8K 
xcache.ttl = 0 
xcache.gc_interval = 0 
; Change xcache.var_size to adjust the size of variable cache 
xcache.var_size = 8M 
xcache.var_count = 1 
xcache.var_slots = 8K 
xcache.var_ttl = 0 
xcache.var_maxttl = 0 
xcache.var_gc_interval = 300 
xcache.test = Off 
xcache.readonly_protection = On 
xcache.mmap_path = "/tmp/xcache" 
xcache.coredump_directory = "" 
xcache.cacher = On 
xcache.stat = On 
xcache.optimizer = Off 
[xcache.coverager] 
xcache.coverager = On 
xcache.coveragedump_directory = ""

配置得非常详细,都不用自己操心了,但是保存后却发现不能重启php-fpm了,无奈只好找了好多种版本的Xcache配置文件,对比了一下,尝试修改了几次,发现是第一句的问题,不是位置,而是zend_extension这一项,把zend_extension修改为extension,重启php-fpm,然后就体验Xcache的强大吧!

6
0
希望看到您的想法,请您发表评论x