單機(jī)memcache內(nèi)存優(yōu)化效果不如APC、Xcache等php加速擴(kuò)展
更新時(shí)間:2016-11-22 10:05:54 來(lái)源:大同網(wǎng)站建設(shè) 點(diǎn)擊:
協(xié)會(huì)老師反映數(shù)碼攝影網(wǎng)http://www.cd-pa.com這幾天打開(kāi)特別慢,讓幫忙處理一下。經(jīng)過(guò)檢測(cè)發(fā)現(xiàn)很多頁(yè)面被掛馬,清理了之后,順便又折騰了一下網(wǎng)站服務(wù)器的優(yōu)化,雖然對(duì)于中小網(wǎng)站來(lái)說(shuō),優(yōu)化沒(méi)有很大的意義,但至少自己訪問(wèn)速度提升、打開(kāi)速度實(shí)現(xiàn)了秒開(kāi),心理還是很爽的。分享一下這次實(shí)踐過(guò)程中積累的一個(gè)經(jīng)驗(yàn):
單機(jī)內(nèi)存優(yōu)化memcache效果不如APC、Xcache等php加速擴(kuò)展
我當(dāng)前的幾個(gè)vps和彈性云都是單機(jī)服務(wù)器,因此這個(gè)問(wèn)題是有價(jià)值的,而且對(duì)于90%的站長(zhǎng)來(lái)說(shuō),估計(jì)都是用的單機(jī)vps,部署集群服務(wù)器的草根站長(zhǎng)估計(jì)不會(huì)很多。
1、memcache單機(jī)個(gè)人使用體會(huì):
由于看著discuz官方是用的memcache,因此包括我在內(nèi)的很多用discuz的站長(zhǎng)都用這個(gè)內(nèi)存優(yōu)化工具,同時(shí)wdcp這個(gè)被廣泛采用的linux面板也集成了memcache,開(kāi)啟非常的方便,所以很多論壇都自然的開(kāi)啟了。
以前包括恒星兼職論壇在內(nèi)的網(wǎng)站都是開(kāi)啟了這個(gè)內(nèi)存優(yōu)化,看著底部的數(shù)據(jù)庫(kù)查詢次數(shù)確實(shí)有很大的減少,從平均的40次左右下降到10次左右。但是我感覺(jué)速度沒(méi)有很大的提升,反而還不如不用memcache優(yōu)化時(shí)候的速度,并且這種感覺(jué)是非常明顯的!我隨便打開(kāi)一個(gè)頁(yè)面都要卡一會(huì)兒,雖然底部顯示的程序運(yùn)行時(shí)間是0.x秒級(jí)別,但實(shí)際感受根不止,每次都要等很久。
我開(kāi)始以為是加速樂(lè)開(kāi)啟的問(wèn)題,關(guān)閉了加速樂(lè)也是一樣的慢,關(guān)閉了memcache優(yōu)化后,速度明顯有上升,雖然數(shù)據(jù)庫(kù)查詢次數(shù)多了,但實(shí)際感受速度快了很多。因此,我琢磨換其它加速工具試試,同時(shí)也了解了一下幾個(gè)加速的異同。
2、memcache加速和APC/Xcache/eAccelerator的異同
這幾個(gè)都是常用的加速工具,但原理是有一定區(qū)別的。
Memcached是“分布式”的內(nèi)存對(duì)象緩存系統(tǒng),那么就是說(shuō),那些不需要“分布”的,不需要共享的,或者干脆規(guī)模小到只有一臺(tái)服務(wù)器的應(yīng)用,memcached不會(huì)帶來(lái)任何好處,相反還會(huì)拖慢系統(tǒng)效率,因?yàn)榫W(wǎng)絡(luò)連接同樣需要資源,即使是UNIX本地連接也一樣。 在我之前的測(cè)試數(shù)據(jù)中顯示,memcached本地讀寫速度要比直接PHP內(nèi)存數(shù)組慢幾十倍,而APC、共享內(nèi)存方式都和直接數(shù)組差不多?梢(jiàn),如果只是本地級(jí)緩存,使用memcached是非常不劃算的。(轉(zhuǎn)的一段話,應(yīng)該描述是準(zhǔn)確的,我看很多朋友都這么說(shuō))
APC/Xcache/eAccelerator這3個(gè)是php加速工具,加速的是php程序的執(zhí)行效率,和memcache是有很大區(qū)別的。
3、為什么單機(jī)服務(wù)器不用memcache而要用APC/Xcache/eAccelerator呢
memcache適合多服務(wù)器使用,是內(nèi)存緩存加速,假如是集群服務(wù)器部署,那使用memcache會(huì)極大的減少數(shù)據(jù)庫(kù)查詢次數(shù),提升程序?qū)崿F(xiàn)效率。單機(jī)由于memcache需要使用網(wǎng)絡(luò)資源,反而會(huì)降低速度!
但APC/Xcache/eAccelerator是php加速工具,提升的是php代碼的執(zhí)行效率!不管是單機(jī)還是集群使用都有效果。
所以在單臺(tái)服務(wù)器的情況下,APC/Xcache/eAccelerator等php加速工具的效果遠(yuǎn)遠(yuǎn)高于memcache。
4、實(shí)際使用情況評(píng)測(cè):Xcache效果好于memcache
由于跟版網(wǎng)是單臺(tái)西部數(shù)碼主機(jī)(彈性云),符合上述情況。先前開(kāi)啟的是memcache內(nèi)存優(yōu)化,實(shí)際效果確實(shí)不咋的,比不開(kāi)啟任何優(yōu)化速度還蠻,雖然減少了數(shù)據(jù)庫(kù)查詢次數(shù),但網(wǎng)頁(yè)打開(kāi)速度很慢,甚至慢到我不能忍受的地步,否則我也不會(huì)去找這個(gè)問(wèn)題!和換其它的優(yōu)化加速工具,假如速度可以接受,誰(shuí)愿意折騰呢?都以論壇首頁(yè)為例:
單機(jī)開(kāi)啟memcache效果:數(shù)據(jù)庫(kù)查詢次數(shù)由40左右下降到10左右,減少的很多,程序執(zhí)行時(shí)間首次x秒左右,第二次開(kāi)始0.x秒,從來(lái)沒(méi)有達(dá)到過(guò)0.0x秒級(jí)別,實(shí)際感受速度那是非常的慢!慢到我無(wú)法忍受以至于不得不關(guān)閉和更換其它的。
單機(jī)開(kāi)啟Xcache效果:數(shù)據(jù)庫(kù)查詢次數(shù)由40左右下降10-20次左右,減少的也不錯(cuò),但效果不如memcache減少的多,必須承認(rèn)。發(fā)現(xiàn)一個(gè)問(wèn)題,就是每天首次訪問(wèn)網(wǎng)站的時(shí)候速度會(huì)較慢,達(dá)到x秒級(jí)別,不知道是否所有php加速都是這樣?大部分時(shí)候是0.2秒左右,這個(gè)比memcache效果好很多了,加快了5倍左右,提升明顯;第二次開(kāi)始下降到0.0x秒,一般在0.05秒左右!繼續(xù)提升似乎很難了,與硬件的性能有關(guān)系。關(guān)鍵是打開(kāi)網(wǎng)頁(yè)感受速度有非常大的提升,基本上一點(diǎn)就開(kāi),感覺(jué)很爽,唰唰的,不像以前要卡頓一下。(至于繼續(xù)優(yōu)化到0.00x秒級(jí)別,我沒(méi)那技術(shù),感覺(jué)也沒(méi)那必要,因?yàn)?.0x秒以后的提升,人訪問(wèn)已經(jīng)無(wú)法感受出來(lái)了。
單機(jī)開(kāi)啟APC/eAccelerator的效果:APC我安裝了并且現(xiàn)在用著,效果和Xcache差不多的,都能夠達(dá)到0.0x秒級(jí)別,由于APC不能和zend一起使用,因此我關(guān)了(實(shí)際我現(xiàn)在也只用了Xcache,和zend一起沒(méi)測(cè)試成功,估計(jì)也提升不了多少,懶得折騰了)。eAccelerator我另外一個(gè)論壇安裝了,速度非常的快,比apc和Xcache效果都要好,但是這個(gè)加速工具有些問(wèn)題,不是很穩(wěn)定,我放棄了(很多網(wǎng)友都反應(yīng)eAccelerator單機(jī)小流量加速效果比apc和x好多很,有興趣的朋友可以自己測(cè)試哦)。
結(jié)論:假如你是單臺(tái)服務(wù)器或者vps,那建議使用APC/Xcache/eAccelerator這類php加速工具,而不用要memcache內(nèi)存優(yōu)化(相信大多數(shù)站長(zhǎng)和我一樣,都用單臺(tái)的,而且根本都用不完呢!當(dāng)然了還有更多的朋友用的虛擬主機(jī),是折騰不了這些優(yōu)化工具的)。假如你是集群服務(wù)器,有負(fù)載均衡的,memcache效果要好很多,具體沒(méi)測(cè)試。
同時(shí),在小流量的情況下(1萬(wàn)流量以下的都是小流量網(wǎng)站),php加速工具隨便選一個(gè)就可以,沒(méi)有很大的區(qū)別,沒(méi)有必要糾結(jié)。
關(guān)于內(nèi)存優(yōu)化和php加速的幾個(gè)問(wèn)題:
1、建議只選一個(gè)優(yōu)化工具:速度是一個(gè)方面,穩(wěn)定性更是壓倒一切,小網(wǎng)站還是少折騰,開(kāi)一個(gè)加速工具就行了,安心做內(nèi)容吧。
2、幾個(gè)沖突的地方:APC不能和zend一起開(kāi)啟;Xcache可以和zend一起用,但需要先加載Xcache再加載zend(我自己沒(méi)折騰成,把zend關(guān)閉了);APC/Xcache/eAccelerator同時(shí)只建議啟用一個(gè),多了網(wǎng)站會(huì)有問(wèn)題。
我今天就遇到個(gè)奇怪的事情,論壇可以正常打開(kāi),但主站后臺(tái)無(wú)法訪問(wèn),老出現(xiàn)503錯(cuò)誤,折騰半天才明白,是因?yàn)樵趐hp.in里面APC/Xcache/我都開(kāi)啟了,但是論壇程序默認(rèn)只開(kāi)啟一個(gè)優(yōu)化,所以可以正常訪問(wèn),但織夢(mèng)程序似乎都開(kāi)啟了,造成無(wú)法訪問(wèn)!關(guān)閉了apc后,主站恢復(fù)正常了。
不想沖突的最好方法,就是只裝一個(gè)加速,夠用了,而且穩(wěn)定。
3、php加速是給所有的程序加速,其實(shí)memcache也一樣,但我起先是折騰論壇的,后來(lái)發(fā)覺(jué)開(kāi)啟Xcache后,織夢(mèng)后臺(tái)的速度杠杠的!點(diǎn)擊任何一個(gè)頁(yè)面都是瞬開(kāi)!這倒是么有想到,其實(shí)這個(gè)問(wèn)題很傻鳥,因?yàn)榧铀俚氖莗hp程序,當(dāng)然這個(gè)服務(wù)器下面的所有網(wǎng)站都加速了……
4、建議給單機(jī)的discuz和wordpress開(kāi)啟至少一個(gè)php加速工具,常用的有APC/Xcache/eAccelerator這3個(gè),效率提升效果非常的明顯。
5、假如你的網(wǎng)站最終是生成靜態(tài)的,那就不需要開(kāi)啟任何加速了!比如只有dedecms/phpcms/zblog,并且最后都生成了靜態(tài)頁(yè)面(偽靜態(tài)的話建議開(kāi)哦),那沒(méi)有必要做任何的內(nèi)存優(yōu)化,這個(gè)優(yōu)化只對(duì)動(dòng)態(tài)內(nèi)容有效果,需要查詢數(shù)據(jù)庫(kù)的,靜態(tài)內(nèi)容是么有用的。能夠加速的就是一個(gè)后臺(tái),沒(méi)啥意義。
6、不管是linux還是win系統(tǒng),都是可以安裝php加速的。
以上內(nèi)容,對(duì)于老手來(lái)說(shuō)都是很容易甚至很傻的問(wèn)題,但對(duì)于我們自學(xué)的草根站長(zhǎng)來(lái)說(shuō),還是要花費(fèi)一段工夫來(lái)了解的,因此記錄在這里,給有需要的朋友參考,同時(shí)自己也積累點(diǎn)經(jīng)驗(yàn),方便以后查閱。
大同市宏微信息技術(shù)有限公司主要從事技術(shù)開(kāi)發(fā)、技術(shù)服務(wù)、技術(shù)轉(zhuǎn)讓;電腦圖文設(shè)計(jì)、制作;網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)、維護(hù);廣告設(shè)計(jì)、制作及發(fā)布;公司主要技術(shù)人員在大同制作網(wǎng)站、大同建站、大同做網(wǎng)站、大同網(wǎng)站建設(shè)、大同網(wǎng)站制作、大同網(wǎng)頁(yè)設(shè)計(jì)、大同網(wǎng)絡(luò)開(kāi)發(fā)、大同網(wǎng)站優(yōu)化等方面有多年豐富的從業(yè)經(jīng)驗(yàn)。
單機(jī)內(nèi)存優(yōu)化memcache效果不如APC、Xcache等php加速擴(kuò)展
我當(dāng)前的幾個(gè)vps和彈性云都是單機(jī)服務(wù)器,因此這個(gè)問(wèn)題是有價(jià)值的,而且對(duì)于90%的站長(zhǎng)來(lái)說(shuō),估計(jì)都是用的單機(jī)vps,部署集群服務(wù)器的草根站長(zhǎng)估計(jì)不會(huì)很多。
1、memcache單機(jī)個(gè)人使用體會(huì):
由于看著discuz官方是用的memcache,因此包括我在內(nèi)的很多用discuz的站長(zhǎng)都用這個(gè)內(nèi)存優(yōu)化工具,同時(shí)wdcp這個(gè)被廣泛采用的linux面板也集成了memcache,開(kāi)啟非常的方便,所以很多論壇都自然的開(kāi)啟了。
以前包括恒星兼職論壇在內(nèi)的網(wǎng)站都是開(kāi)啟了這個(gè)內(nèi)存優(yōu)化,看著底部的數(shù)據(jù)庫(kù)查詢次數(shù)確實(shí)有很大的減少,從平均的40次左右下降到10次左右。但是我感覺(jué)速度沒(méi)有很大的提升,反而還不如不用memcache優(yōu)化時(shí)候的速度,并且這種感覺(jué)是非常明顯的!我隨便打開(kāi)一個(gè)頁(yè)面都要卡一會(huì)兒,雖然底部顯示的程序運(yùn)行時(shí)間是0.x秒級(jí)別,但實(shí)際感受根不止,每次都要等很久。
我開(kāi)始以為是加速樂(lè)開(kāi)啟的問(wèn)題,關(guān)閉了加速樂(lè)也是一樣的慢,關(guān)閉了memcache優(yōu)化后,速度明顯有上升,雖然數(shù)據(jù)庫(kù)查詢次數(shù)多了,但實(shí)際感受速度快了很多。因此,我琢磨換其它加速工具試試,同時(shí)也了解了一下幾個(gè)加速的異同。
2、memcache加速和APC/Xcache/eAccelerator的異同
這幾個(gè)都是常用的加速工具,但原理是有一定區(qū)別的。
Memcached是“分布式”的內(nèi)存對(duì)象緩存系統(tǒng),那么就是說(shuō),那些不需要“分布”的,不需要共享的,或者干脆規(guī)模小到只有一臺(tái)服務(wù)器的應(yīng)用,memcached不會(huì)帶來(lái)任何好處,相反還會(huì)拖慢系統(tǒng)效率,因?yàn)榫W(wǎng)絡(luò)連接同樣需要資源,即使是UNIX本地連接也一樣。 在我之前的測(cè)試數(shù)據(jù)中顯示,memcached本地讀寫速度要比直接PHP內(nèi)存數(shù)組慢幾十倍,而APC、共享內(nèi)存方式都和直接數(shù)組差不多?梢(jiàn),如果只是本地級(jí)緩存,使用memcached是非常不劃算的。(轉(zhuǎn)的一段話,應(yīng)該描述是準(zhǔn)確的,我看很多朋友都這么說(shuō))
APC/Xcache/eAccelerator這3個(gè)是php加速工具,加速的是php程序的執(zhí)行效率,和memcache是有很大區(qū)別的。
3、為什么單機(jī)服務(wù)器不用memcache而要用APC/Xcache/eAccelerator呢
memcache適合多服務(wù)器使用,是內(nèi)存緩存加速,假如是集群服務(wù)器部署,那使用memcache會(huì)極大的減少數(shù)據(jù)庫(kù)查詢次數(shù),提升程序?qū)崿F(xiàn)效率。單機(jī)由于memcache需要使用網(wǎng)絡(luò)資源,反而會(huì)降低速度!
但APC/Xcache/eAccelerator是php加速工具,提升的是php代碼的執(zhí)行效率!不管是單機(jī)還是集群使用都有效果。
所以在單臺(tái)服務(wù)器的情況下,APC/Xcache/eAccelerator等php加速工具的效果遠(yuǎn)遠(yuǎn)高于memcache。
4、實(shí)際使用情況評(píng)測(cè):Xcache效果好于memcache
由于跟版網(wǎng)是單臺(tái)西部數(shù)碼主機(jī)(彈性云),符合上述情況。先前開(kāi)啟的是memcache內(nèi)存優(yōu)化,實(shí)際效果確實(shí)不咋的,比不開(kāi)啟任何優(yōu)化速度還蠻,雖然減少了數(shù)據(jù)庫(kù)查詢次數(shù),但網(wǎng)頁(yè)打開(kāi)速度很慢,甚至慢到我不能忍受的地步,否則我也不會(huì)去找這個(gè)問(wèn)題!和換其它的優(yōu)化加速工具,假如速度可以接受,誰(shuí)愿意折騰呢?都以論壇首頁(yè)為例:
單機(jī)開(kāi)啟memcache效果:數(shù)據(jù)庫(kù)查詢次數(shù)由40左右下降到10左右,減少的很多,程序執(zhí)行時(shí)間首次x秒左右,第二次開(kāi)始0.x秒,從來(lái)沒(méi)有達(dá)到過(guò)0.0x秒級(jí)別,實(shí)際感受速度那是非常的慢!慢到我無(wú)法忍受以至于不得不關(guān)閉和更換其它的。
單機(jī)開(kāi)啟Xcache效果:數(shù)據(jù)庫(kù)查詢次數(shù)由40左右下降10-20次左右,減少的也不錯(cuò),但效果不如memcache減少的多,必須承認(rèn)。發(fā)現(xiàn)一個(gè)問(wèn)題,就是每天首次訪問(wèn)網(wǎng)站的時(shí)候速度會(huì)較慢,達(dá)到x秒級(jí)別,不知道是否所有php加速都是這樣?大部分時(shí)候是0.2秒左右,這個(gè)比memcache效果好很多了,加快了5倍左右,提升明顯;第二次開(kāi)始下降到0.0x秒,一般在0.05秒左右!繼續(xù)提升似乎很難了,與硬件的性能有關(guān)系。關(guān)鍵是打開(kāi)網(wǎng)頁(yè)感受速度有非常大的提升,基本上一點(diǎn)就開(kāi),感覺(jué)很爽,唰唰的,不像以前要卡頓一下。(至于繼續(xù)優(yōu)化到0.00x秒級(jí)別,我沒(méi)那技術(shù),感覺(jué)也沒(méi)那必要,因?yàn)?.0x秒以后的提升,人訪問(wèn)已經(jīng)無(wú)法感受出來(lái)了。
單機(jī)開(kāi)啟APC/eAccelerator的效果:APC我安裝了并且現(xiàn)在用著,效果和Xcache差不多的,都能夠達(dá)到0.0x秒級(jí)別,由于APC不能和zend一起使用,因此我關(guān)了(實(shí)際我現(xiàn)在也只用了Xcache,和zend一起沒(méi)測(cè)試成功,估計(jì)也提升不了多少,懶得折騰了)。eAccelerator我另外一個(gè)論壇安裝了,速度非常的快,比apc和Xcache效果都要好,但是這個(gè)加速工具有些問(wèn)題,不是很穩(wěn)定,我放棄了(很多網(wǎng)友都反應(yīng)eAccelerator單機(jī)小流量加速效果比apc和x好多很,有興趣的朋友可以自己測(cè)試哦)。
結(jié)論:假如你是單臺(tái)服務(wù)器或者vps,那建議使用APC/Xcache/eAccelerator這類php加速工具,而不用要memcache內(nèi)存優(yōu)化(相信大多數(shù)站長(zhǎng)和我一樣,都用單臺(tái)的,而且根本都用不完呢!當(dāng)然了還有更多的朋友用的虛擬主機(jī),是折騰不了這些優(yōu)化工具的)。假如你是集群服務(wù)器,有負(fù)載均衡的,memcache效果要好很多,具體沒(méi)測(cè)試。
同時(shí),在小流量的情況下(1萬(wàn)流量以下的都是小流量網(wǎng)站),php加速工具隨便選一個(gè)就可以,沒(méi)有很大的區(qū)別,沒(méi)有必要糾結(jié)。
關(guān)于內(nèi)存優(yōu)化和php加速的幾個(gè)問(wèn)題:
1、建議只選一個(gè)優(yōu)化工具:速度是一個(gè)方面,穩(wěn)定性更是壓倒一切,小網(wǎng)站還是少折騰,開(kāi)一個(gè)加速工具就行了,安心做內(nèi)容吧。
2、幾個(gè)沖突的地方:APC不能和zend一起開(kāi)啟;Xcache可以和zend一起用,但需要先加載Xcache再加載zend(我自己沒(méi)折騰成,把zend關(guān)閉了);APC/Xcache/eAccelerator同時(shí)只建議啟用一個(gè),多了網(wǎng)站會(huì)有問(wèn)題。
我今天就遇到個(gè)奇怪的事情,論壇可以正常打開(kāi),但主站后臺(tái)無(wú)法訪問(wèn),老出現(xiàn)503錯(cuò)誤,折騰半天才明白,是因?yàn)樵趐hp.in里面APC/Xcache/我都開(kāi)啟了,但是論壇程序默認(rèn)只開(kāi)啟一個(gè)優(yōu)化,所以可以正常訪問(wèn),但織夢(mèng)程序似乎都開(kāi)啟了,造成無(wú)法訪問(wèn)!關(guān)閉了apc后,主站恢復(fù)正常了。
不想沖突的最好方法,就是只裝一個(gè)加速,夠用了,而且穩(wěn)定。
3、php加速是給所有的程序加速,其實(shí)memcache也一樣,但我起先是折騰論壇的,后來(lái)發(fā)覺(jué)開(kāi)啟Xcache后,織夢(mèng)后臺(tái)的速度杠杠的!點(diǎn)擊任何一個(gè)頁(yè)面都是瞬開(kāi)!這倒是么有想到,其實(shí)這個(gè)問(wèn)題很傻鳥,因?yàn)榧铀俚氖莗hp程序,當(dāng)然這個(gè)服務(wù)器下面的所有網(wǎng)站都加速了……
4、建議給單機(jī)的discuz和wordpress開(kāi)啟至少一個(gè)php加速工具,常用的有APC/Xcache/eAccelerator這3個(gè),效率提升效果非常的明顯。
5、假如你的網(wǎng)站最終是生成靜態(tài)的,那就不需要開(kāi)啟任何加速了!比如只有dedecms/phpcms/zblog,并且最后都生成了靜態(tài)頁(yè)面(偽靜態(tài)的話建議開(kāi)哦),那沒(méi)有必要做任何的內(nèi)存優(yōu)化,這個(gè)優(yōu)化只對(duì)動(dòng)態(tài)內(nèi)容有效果,需要查詢數(shù)據(jù)庫(kù)的,靜態(tài)內(nèi)容是么有用的。能夠加速的就是一個(gè)后臺(tái),沒(méi)啥意義。
6、不管是linux還是win系統(tǒng),都是可以安裝php加速的。
以上內(nèi)容,對(duì)于老手來(lái)說(shuō)都是很容易甚至很傻的問(wèn)題,但對(duì)于我們自學(xué)的草根站長(zhǎng)來(lái)說(shuō),還是要花費(fèi)一段工夫來(lái)了解的,因此記錄在這里,給有需要的朋友參考,同時(shí)自己也積累點(diǎn)經(jīng)驗(yàn),方便以后查閱。
上一篇:第三屆世界互聯(lián)網(wǎng)大會(huì)在浙江烏鎮(zhèn)閉幕 下一篇:實(shí)戰(zhàn)檢驗(yàn)xcache-在win服務(wù)器安裝教程