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