Yblog = yourblog,你的優質部落格。願真田幸村紅鎧策馬赤備突擊的身影,帶給我們更多的勇氣。
星期六, 七月 14, 2007
優格網採用eAccelerator 0.9.5.1提高效率與穩定
這2天重新讓網站採用PHP加速套件eAccelerator的結果是變得更快、更穩定且有效率,PHP錯誤的機率已經相當少,測試一天約產生12筆左右的錯誤訊息紀錄而已。

之後還想再試試看採用fastcgi來跑,可能會更迅速也不一定,現階段網站的服務還沒有完全更新完畢,但執行效率已經滿意,可以再更上層樓吧。

這個讓PHP加速的程式套件能夠提高網站的效率,最新的版本是eAccelerator Release-0.9.5.1。而0.9.6正在測試中。

在PHP程式加速的領域,除了有Zend套件與工具外,過去還有著名的PHP加速套件「turck-mmcache」,後來作者被挖角跳槽到Zend去,就沒有繼續開發更新,而後來則由開源社群繼續研發,推出了免費的eAccelerator。

這套加速工具的原理很簡單,就是把PHP編譯過的二進位碼快取暫存起來,不論是放在記憶體,或者是磁碟空湮上,均能達到節省編譯文件輸出到網頁上的時間,進而提高了瀏覽效率。

大小姐問我原理是什麼,講太複雜又不行,就用了書本和書櫃的比喻。當我們在書櫃找某本書上的某頁給想看的人,得打開書櫃,找到書,翻到那一頁給人看。如果這個動作要作一千次,就得重複這些動作一千次。

假設eAccelerator是一種快取影印機,把訪客想看的書頁,就那些頁數找出來影印一份,之後有人想看同樣的幾頁,就丟影印資料給他就好了,省去了開書櫃找書本翻頁數的時間。

對主機而言,就減少了很多負載,資料庫和網頁服務就會稍微閒一點,雖然還是會累,但已經省去不少功夫。

使用eAccelerator時要注意,如果你的PHP程式有經過ZEND編碼,那麼就可以同時使用ZEND加速套件,如果沒經過ZEND編碼,是一般PHP程式的話,把ZEND加速套件關閉似乎會節省一些資源,效果還不錯。

我自己使用eAccelerator的設定如下:
[eAccelerator]
zend_extension_ts="放置PHP擴充套件的目錄名稱\根據PHP版本不同而選擇的eaccelerator套件檔案名稱"
eaccelerator.shm_size="128"(這次提高分配給eAccelerator加速的記憶體設置)
eaccelerator.cache_dir="給eAccelerator暫存快取檔案的目錄"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.debug="0"
eaccelerator.check_mtime="1"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"(選1的話,完全用記憶體,但如果網站資料很多就不選)
eaccelerator.compress="1"
eaccelerator.compress_level="9"(預設的最高壓縮等級)
eaccelerator.keys="shm"(優先使用記憶體,分配到的記憶體用光時才用磁碟空間)
eaccelerator.sessions="shm"
eaccelerator.content="shm"









Collablog Portal enabled