自从从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/ 。大部分教程给出的代码是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
[xcache-<span style="color: #000000">common] zend_extension </span>= /usr/local/php/lib/php/extensions/no-debug-non-zts-<span style="color: #800080">20090626</span>/<span style="color: #000000">xcache.so [xcache.admin] ; Change xcache.admin.user to your preferred </span><span style="color: #0000ff">login</span><span style="color: #000000"> name xcache.admin.user </span>= <span style="color: #800000">"</span><span style="color: #800000">admin</span><span style="color: #800000">"</span><span style="color: #000000"> ; Change xcache.admin.pass to the MD5 fingerprint of your password ; Use md5 </span>-s <span style="color: #800000">"</span><span style="color: #800000">your_secret_password</span><span style="color: #800000">"</span> to <span style="color: #0000ff">find</span><span style="color: #000000"> the fingerprint xcache.admin.pass </span>= <span style="color: #800000">"</span><span style="color: #800000">e10adc3949ba59abbe56e057f20f883e</span><span style="color: #800000">"</span><span style="color: #000000"> [xcache] ; Change xcache.size to tune the size of the opcode cache xcache.size </span>=<span style="color: #000000"> 24M xcache.shm_scheme </span>= <span style="color: #800000">"</span><span style="color: #800000">mmap</span><span style="color: #800000">"</span><span style="color: #000000"> xcache.count </span>= <span style="color: #800080">2</span><span style="color: #000000"> xcache.slots </span>=<span style="color: #000000"> 8K xcache.ttl </span>= <span style="color: #800080">0</span><span style="color: #000000"> xcache.gc_interval </span>= <span style="color: #800080">0</span><span style="color: #000000"> ; Change xcache.var_size to adjust the size of variable cache xcache.var_size </span>=<span style="color: #000000"> 8M xcache.var_count </span>= <span style="color: #800080">1</span><span style="color: #000000"> xcache.var_slots </span>=<span style="color: #000000"> 8K xcache.var_ttl </span>= <span style="color: #800080">0</span><span style="color: #000000"> xcache.var_maxttl </span>= <span style="color: #800080">0</span><span style="color: #000000"> xcache.var_gc_interval </span>= <span style="color: #800080">300</span><span style="color: #000000"> xcache.test </span>=<span style="color: #000000"> Off xcache.readonly_protection </span>=<span style="color: #000000"> On xcache.mmap_path </span>= <span style="color: #800000">"</span><span style="color: #800000">/tmp/xcache</span><span style="color: #800000">"</span><span style="color: #000000"> xcache.coredump_directory </span>= <span style="color: #800000">""</span><span style="color: #000000"> xcache.cacher </span>=<span style="color: #000000"> On xcache.</span><span style="color: #0000ff">stat</span> =<span style="color: #000000"> On xcache.optimizer </span>=<span style="color: #000000"> Off [xcache.coverager] xcache.coverager </span>=<span style="color: #000000"> On xcache.coveragedump_directory </span>= <span style="color: #800000">""</span> |
配置得非常详细,都不用自己操心了,但是保存后却发现不能重启php-fpm了,无奈只好找了好多种版本的Xcache配置文件,对比了一下,尝试修改了几次,发现是第一句的问题,不是位置,而是zend_extension这一项,把zend_extension修改为extension,重启php-fpm,然后就体验Xcache的强大吧!
也太专业了
您推广也太勤快了
楼主好文,深有感悟,必须马克。我是一鸣,记得回访!
你谁啊你。。。。
我也觉得eAccelerator效果不是特别明显,果断换成Xcache
eAcceletator用了之后大概就省了10M左右的内存,确实说不上什么性能,估计是开发者也没啥热情了