WordPress性能優(yōu)化技巧:加速你的WordPress

2012-02-29 09:57:17來源:我愛水煮魚作者:

很多同學(xué)都說 WordPress 很慢,前面我發(fā)布的插件 WPJAM Debug,可以在頁腳顯示當(dāng)前頁面有多少條 SQL 查詢,頁面生成花了多少時間,并且把 SQL 按照執(zhí)行順序和按照耗時列出,可以通過這樣的方式幫你分析 WordPress 哪

很多同學(xué)都說 WordPress 很慢,前面我發(fā)布的插件 WPJAM Debug,可以在頁腳顯示當(dāng)前頁面有多少條 SQL 查詢,頁面生成花了多少時間,并且把 SQL 按照執(zhí)行順序和按照耗時列出,可以通過這樣的方式幫你分析 WordPress 哪里慢。

但是 WPJAM Debug 只是分析 WordPress 效率,具體涉及到 WordPress 性能優(yōu)化,還需要自己動手來做,今天我就講講這一段時間來我工作的網(wǎng)站:App每日推送(也是基于 WordPress 構(gòu)建)是怎么優(yōu)化的。

關(guān)于App每日推送

App每日推送是基于 WordPress 構(gòu)建的 iPhone/iPad 應(yīng)用推薦服務(wù),這是目前我做過最復(fù)雜的 WordPress 網(wǎng)站,有多重篩選:可以通過設(shè)備(iPhone/iPad/通用),價格(免費(fèi)/限免/收費(fèi))分類(游戲/應(yīng)用/工具等等)選擇自己喜歡的 App,用戶動態(tài),討論區(qū),消息通知,積分,積分兌換等等功能。

目前整個網(wǎng)站每個月的流量已經(jīng)超過 300W,但是網(wǎng)站目前的速度很快,大部分頁面在 0.1 秒內(nèi)生成,并且只有 2 條 SQL 查詢,比如首頁:2 queries in 0.063 seconds。

那么我們是怎么進(jìn)行優(yōu)化的?

服務(wù)器優(yōu)化

首先要選擇一個靠譜的主機(jī)托管商,在國內(nèi)這個很多時候讓你抓狂,但是只要努力還是可以的,第二選擇 BGP 或者多線機(jī)房,讓全國用戶訪問都能有不錯的速度,第三選擇獨(dú)立的服務(wù)器,再不行,也要選擇 VPS,因?yàn)槟銢]有服務(wù)器的 Root 權(quán)限很多東西是無法進(jìn)行的,個人博客可以考慮 Media Temple 這類的 VPS 主機(jī)。

服務(wù)器問題解決之后,服務(wù)器可以做如下優(yōu)化:

1. Web 服務(wù)器選擇使用 Nginx:效率和并發(fā)比 Apache 高,系統(tǒng)資源消耗低。

2. MySQL 設(shè)置 MySQL Query Cache,可以保存保存查詢結(jié)果,同樣的查詢不再從數(shù)據(jù)庫檢索,對速度有很大的提升。

3. 使用 eAccelerator 加快 PHP 腳本的執(zhí)行效率:把經(jīng)過編譯后的 PHP 代碼緩存到共享內(nèi)存中,并在用戶訪問的時候直接調(diào)用從而起到高效的加速作用。

WordPress 程序優(yōu)化

WordPress 插件一定要只用必須的,另外盡量能夠全部插件自己寫,如果不能全部自己寫,也要對第三方插件按照自己需求進(jìn)行改寫,

WordPress 主題代碼的質(zhì)量一定要保證,盡量使用模板函數(shù),比如 get_the_terms 和 wp_get_object_terms 這兩個函數(shù),功能基本一樣,但是get_the_terms 直接從緩存中取數(shù)據(jù),無查詢,而 wp_get_object_terms 每次都從數(shù)據(jù)庫中取數(shù)據(jù),不用說,肯定第一個效率更好。

WordPress 緩存

關(guān)于 WordPress 緩存我已經(jīng)做過詳細(xì)的總結(jié),這里就不再累贅,具體涉及到 App每日推送,由于動態(tài)網(wǎng)站的特性,注冊用戶比較多,不適合 WP Super Cache 這樣的靜態(tài)緩存,對硬盤讀寫太多,討論區(qū)又無法緩存,我們使用 Memcached 和 Batcache 搭配的內(nèi)存緩存模式:

對于已登陸的用戶,Memcached 會把 Object Cache 的對象存到內(nèi)存里面,服務(wù)器的內(nèi)存足夠大,讀取和存儲速度也夠快,并且內(nèi)存緩存命中率也大于 93%。另外我們 WordPress 程序經(jīng)過優(yōu)化,每個頁面的查詢一般在 2 條左右,所以整個網(wǎng)站效率很高。

對于未登錄的用戶,Batcache 會把整個頁面當(dāng)做一個對象存到內(nèi)存里面,未登錄用戶訪問的時候,整個頁面從內(nèi)存中取出,速度奇快。

WordPress 性能優(yōu)化總結(jié)

選擇好的服務(wù)器和托管商,對 WordPress 程序進(jìn)行優(yōu)化,并且做好緩存,WordPress 效率其實(shí)很高的,加上 WordPress 本身的靈活性和功能強(qiáng)大,WordPress 作為各種建站絕對是非常不錯的選擇。

另外這里還有一份我總結(jié)的關(guān)于 WordPress 性能優(yōu)化的 PPT: http://vdisk.weibo.com/s/2QR2M,內(nèi)容略有補(bǔ)充。

關(guān)鍵詞:WordPress

贊助商鏈接: