這是一篇關(guān)于wordpress加速的另類文章,把緩存文件放到內(nèi)存中,如果內(nèi)存不夠用怎么辦?swap分區(qū)。剛好你的vps沒有swap分區(qū)呢?可以來增加虛擬swap分區(qū),好了,進入正題。
很多wordpress站長都喜歡用Hype e、 pe e等緩存插件,把PHP動態(tài)頁面在首次訪問時生成html靜態(tài)頁面并存儲在硬盤中,當其他訪客再次訪問時直接讀取該靜態(tài)頁面,這樣不需要再次通過PHP生成動態(tài)頁面也不需要再從數(shù)據(jù)庫中讀取數(shù)據(jù),大幅降低系統(tǒng)資源消耗,且大幅提升了頁面打開速度。
當你的vps是塊石頭盤呢?就可以看看下面的內(nèi)容了:
先來測測我使用的服務(wù)器硬盤讀寫速度:
- f=/dev/ze f=bigfi=1 nt=500
- 500+ ecord
- 500+ ecord t
- 52428800 te2.84. B/s
再來對比一下服務(wù)器內(nèi)存的讀寫速度:
- #c/shm
- f=/dev/ze f=bigfi=1 nt=500
- 245+ ecord
- 244+ ecord t
- 2560163 te.14160. B/s
- //Vevb.com
26.4MB/s與1.8GB/s,天壤之別啊!如果我們把這些生成的靜態(tài)文件放到內(nèi)存里緩存,效果不言而喻。
Linux系統(tǒng)為我們提供了這樣的解決辦法,那就是tmpfs文件系統(tǒng),tmpfs可以直接使用內(nèi)存,同時在內(nèi)存不夠時使用swap分區(qū)來存儲。另外需要注意的是tmpfs不具備持久性,重啟后數(shù)據(jù)不保留,請務(wù)必注意,不過我們只用它來存儲緩存文件,即使文件丟失也不影響網(wǎng)站訪問,完全無風(fēng)險。wordpress如何使用把緩存放到內(nèi)存中
/dev/shm/是一個設(shè)備文件,它使用就是tmpfs文件系統(tǒng)(注意:在Centos和Redhat下,/dev/shm目錄是一個鏈接,指向/run/shm目錄,在Ubuntu系統(tǒng)下tmpfs文件系統(tǒng)對應(yīng)的是/run/shm目錄,可以使用df命令查看),因為/dev/shm/這個目錄不在硬盤上,而是在內(nèi)存里,它就是所謂的tmpfs。可通過命令查看到,tmpfs默認大小為物理內(nèi)存的一半,當然也可以根據(jù)實際情況調(diào)整。
首先為wordpress的緩存文件建立一個目錄wpcache
kdi/shm/wpcache
賦予讀寫執(zhí)行權(quán)限
7/shm/wpcache
將tmpfs掛載到wordpress緩存插件生成的/cache目錄下
n/shm/wpcac me/wwwroot/amznz.com/wp-content/cache
/shm/wpcache
返回類似下面的內(nèi)容說明掛載成功
rwxr w w2/shm/wpcache
此時緩存插件會重新生成靜態(tài)頁面文件,過一段時間后,通過命令即可查到tmpfs的使用情況。
需要注意的兩個問題:
1.根據(jù)實際情況(內(nèi)存大小、文章數(shù)量)調(diào)整wordpress緩存插件的中的緩存頁面到期時間,否則會占用太多內(nèi)存;
2.注意添加swap分區(qū),以防內(nèi)存不夠用時備用,4G物理內(nèi)存以下設(shè)置swap分區(qū)大小為2G即可。OK!來測試一下:感受一下,速度有沒有更快一些呢?當然你也可以參考此方法運用在其它類型的網(wǎng)站程序上。
之前在網(wǎng)上看到有人在wordpress上使用memcache緩存模塊來優(yōu)化,咱這里也做了個測試,使用memcache緩存模塊與使用共享內(nèi)存/dev/shm的讀寫測試對比,不多說,自己看吧:
測試一:讀取100000次數(shù)據(jù)——————————?C//使用memcacherequire_onc‘tools/cache/memcached-client.php';$me e emcached($options);$mem->set(‘x’‘0’);$ti icrotime(TRUE);fo$0000++) em->get(‘x’);}$e icrotime(TRUE);ech ound($e i);——————————?C連續(xù)運行三次腳本,結(jié)果分別為10.5,10.46,10.63
——————————?C//使用共享內(nèi)存/dev/shm$ti icrotime(TRUE);fo$0000++){$da e_get_contents(‘/dev/shm/php_system/vipcache’);}$e icrotime(TRUE);ech ound($e i);——————————?C連續(xù)運行三次腳本,結(jié)果分別為3.2,3.25,3.2
測試二:寫入100000次數(shù)據(jù)——————————?C//使用memcache$me e emcached($options);$ti icrotime(TRUE);fo$0000++) em->set(‘x’‘0’);}$e icrotime(TRUE);ech ound($e i);——————————?C連續(xù)運行三次腳本,結(jié)果分別為10.93,9.22,9.41,與讀取測試結(jié)果相差不大,說明memcache的讀與寫時間是差不多的
——————————?C//使用共享內(nèi)存/dev/shm$ti icrotime(TRUE);fo$0000++){$da e_put_contents(‘/dev/shm/php_system/vipcache’‘0’);}$e icrotime(TRUE);ech ound($e i);——————————?C連續(xù)運行三次腳本,結(jié)果分別為2.5,2.52,2.53,寫跟讀的性能一樣優(yōu)越
測試結(jié)論:直接操作本地的共享內(nèi)存,速度比memcache要快很多。
新聞熱點
疑難解答
圖片精選