1. <s id="pcy27"></s>

            <s id="pcy27"><option id="pcy27"><bdo id="pcy27"></bdo></option></s>

            <s id="pcy27"><option id="pcy27"><bdo id="pcy27"></bdo></option></s>
            • WordPress終極提速之靜態頁內存緩存

              大多數WordPress個人博客站長都會使用諸如Hyper Cache、WP Super Cache等緩存插件,使用這類插件可以將PHP動態頁面在首次訪問時生成html靜態頁面并存儲在硬盤中,當其他訪客再次訪問時直接讀取該靜態頁面,這樣不需要再次通過PHP生成動態頁面也不需要再從數據庫中讀取數據,大幅降低系統資源消耗,且大幅提升了頁面打開速度。

              如果不考慮服務器帶寬,那最大的瓶頸就是硬盤了,因為這些生成的靜態頁面都存儲在硬盤上,訪問量大時,硬盤的讀寫速度低會導致網站訪問緩慢,如何在較大的訪問量下依然保持頁面的迅速打開呢?如果你使用VPS、云服務器或獨立服務器,繼續閱讀下去,你會有大收獲:

              先來測測我使用的服務器硬盤讀寫速度:
              # dd if=/dev/zero of=bigfile bs=1M count=500
              500+0 records in
              500+0 records out
              524288000 bytes (524 MB) copied, 19.8486 s, 26.4 MB/s

              再來對比一下服務器內存的讀寫速度:
              #cd /dev/shm
              # dd if=/dev/zero of=bigfile bs=1M count=500
              245+0 records in
              244+0 records out
              256016384 bytes (256 MB) copied, 0.141606 s, 1.8 GB/s

              26.4MB/s與1.8GB/s,天壤之別啊!如果我們把這些生成的靜態文件放到內存里緩存,效果不言而喻。

              幸運的是Linux系統為我們提供了這樣的解決辦法,那就是tmpfs文件系統,tmpfs可以直接使用內存,同時在內存不夠時使用swap分區來存儲。另外需要注意的是tmpfs不具備持久性,重啟后數據不保留,請務必注意,不過我們只用它來存儲緩存文件,即使文件丟失也不影響網站訪問,完全無風險。

              wordpress如何使用tmpfs

              /dev/shm/是一個設備文件,它使用就是tmpfs文件系統(注意:在Centos和Redhat下,/dev/shm目錄是一個鏈接,指向/run/shm目錄,在Ubuntu系統下tmpfs文件系統對應的是/run/shm目錄,可以使用df命令查看),因為/dev/shm/這個目錄不在硬盤上,而是在內存里,它就是所謂的tmpfs。可通過命令 df -h 查看到,tmpfs默認大小為物理內存的一半,當然也可以根據實際情況調整。

              首先為wordpress的緩存文件建立一個目錄wpcache
              # mkdir /dev/shm/wpcache
              賦予讀寫執行權限
              # chmod 1777 /dev/shm/wpcache
              將tmpfs掛載到wordpress緩存插件生成的/cache目錄下
              # mount --bind /dev/shm/wpcache /home/wwwroot/amznz.com/wp-content/cache
              # ls -ld /dev/shm/wpcache
              返回類似下面的內容說明掛載成功
              drwxrwxrwt 3 www www 60 Jul 31 22:50 /dev/shm/wpcache

              此時緩存插件會重新生成靜態頁面文件,過一段時間后,通過命令
              # df -h
              即可查到tmpfs的使用情況。

              需要注意的兩個問題:
              1.根據實際情況(內存大小、文章數量)調整wordpress緩存插件的中的緩存頁面到期時間,否則會占用太多內存;
              2.注意添加swap分區,以防內存不夠用時備用,4G物理內存以下設置swap分區大小為2G即可。
              OK!來測試一下:感受一下,速度有沒有更快一些呢?當然你也可以參考此方法運用在其它類型的網站程序上。

              之前在網上看到有人在wordpress上使用memcache緩存模塊來優化,咱這里也做了個測試,使用memcache緩存模塊與使用共享內存/dev/shm的讀寫測試對比,不多說,自己看吧:

              測試一:讀取100000次數據
              --------------------------------
              //使用memcache
              require_once 'tools/cache/memcached-client.php';
              $mem = new memcached($options);
              $mem->set('x' , '0');
              $time = microtime(TRUE);
              for ($i = 0 ; $i < 100000 ; $i++){ $mem->get('x');
              }
              $end = microtime(TRUE);
              echo round($end - $time , 2);
              --------------------------------
              連續運行三次腳本,結果分別為10.5,10.46,10.63

              --------------------------------
              //使用共享內存/dev/shm
              $time = microtime(TRUE);
              for ($i = 0 ; $i < 100000 ; $i++){
              $data = file_get_contents('/dev/shm/php_system/vipcache');
              }
              $end = microtime(TRUE);
              echo round($end - $time , 2);
              --------------------------------
              連續運行三次腳本,結果分別為3.2,3.25,3.2

              測試二:寫入100000次數據
              --------------------------------
              //使用memcache
              $mem = new memcached($options);
              $time = microtime(TRUE);
              for ($i = 0 ; $i < 100000 ; $i++){ $mem->set('x' , '0');
              }
              $end = microtime(TRUE);
              echo round($end - $time , 2);
              --------------------------------
              連續運行三次腳本,結果分別為10.93,9.22,9.41,與讀取測試結果相差不大,說明memcache的讀與寫時間是差不多的

              --------------------------------
              //使用共享內存/dev/shm
              $time = microtime(TRUE);
              for ($i = 0 ; $i < 100000 ; $i++){
              $data = file_put_contents('/dev/shm/php_system/vipcache' , '0');
              }
              $end = microtime(TRUE);
              echo round($end - $time , 2);
              --------------------------------
              連續運行三次腳本,結果分別為2.5,2.52,2.53,寫跟讀的性能一樣優越

              測試結論:直接操作本地的共享內存,速度比memcache要快很多。

              ? 原文地址: http://www.kh009.com/wordpress-cache-tmpfs/
              版權所有!如轉載文章,請務必注明以上引用地址,否則請勿轉載!




            • + ev、pv、ac項目管理中簡寫記憶及計算公式
            • + 極品飛車音樂全集下載
            • + November Was White,December Was Grey
            • + Word插入gif動態圖片方法
            • + 免費手機號碼歸屬地接口
            • + Axure IOS/Android素材大全
            • + fonts.googleapis.com加載慢解決辦法
            • + MySQL數據庫MyISAM轉換InnoDB方法
            • + 百度蜘蛛IP(定期更新)
            • + LNMPA圖片防盜鏈方法
            • + No Update Required
            • + 如果我欠了你五塊錢,請你告訴我

            萝莉99