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