Translate


訂閱服務...

線上使用者

目前共有 0 位註冊使用者4 位訪客 在線上。

新會員

  • Mfeeluse
  • chris
  • kendrickpittmaneq
  • pigpighhkk
  • lissa

書籍推薦

效能 - 啟用網站快取功能

Arthur Yu 的照片
No votes yet

沒想到阿舍也來到了這一天,不知各位大德有沒發現,阿舍的這個站的反應速度,有時真的有點給它很慢,偶爾還會連不到,或是出現資料庫連線太多而連不到資料庫的情形,阿舍發現之後,馬上就給它用那個 Live Chat 去跟 Hosting 的客服反應,只是,沒想到現在的 Live Chat 支援也來和電話一樣的訊息 "現在所有的客服人員都在忙線中,請稍後,你目前是第 x 順位......" ( 註. 這是阿舍加強翻譯後的版本,不過原文大概就是這個意思...呵呵),有點給它當場傻掉.....=____=!! 。



終於在 5..4...3...2...1 之後輪到阿舍來問問題了,結果,就說是連線太多沒有解的,阿舍心想一定是要阿舍升級的吧,於是就問說是不是升級有效,呵呵 ! 沒想到客服人員就很客氣的說升級應該是沒有用的,阿舍於是就很絕望的問說該怎麼辦 ? 客服人員便更客氣的說,直接換成 Dedicated Hosting 應該就不會有問題了....,啊 !! Dedicated Hosting 一個月要 170 多美金哩 ! 阿舍現在租的 Hosting 才 10 元不到的...=____=!!。

好吧 ! 在還沒找到合適的新家之前,還是要自救一下,既然是資料庫連線的問題,那阿舍就先來解決這個問題,也就是說要提高快取 ( Cache ) 的功能,Drupal 的每一個網頁幾乎都是先到資料庫去撈資料後才產生出來的,所以,當大德們開啟 Drupal 的網頁時,就會建立一個資料庫連線,為了降低從資料庫抓資料的次數和產生網頁的時間,所謂的快取的方式,就是將一些常用的網頁產生成靜態的 HTML 網頁,因為是靜態的 HTML 網頁不用每次重新產生,所以讀取的速度就會快多了。=> 這個是 Boost 模組的功能,阿舍寫錯了...呵呵 !! 多謝大德的指正。

這裡的快取是將一定使用頻率的網頁儲存在資料庫裡,所以當下次有使用者要讀取相同的網頁時,就不用重頭讀程式碼來執行產生網頁的動作,直接從資料庫去抓出來來顯示,所以可以降低伺服器的負載,減少運算的需求,至於資料庫連線的部份,則是可以減少查詢 ( Query ) 的次數,而縮短每一個連線的時間。

Druapl 內建就有快取的功能,就是在「管理」 › 「網站設定」 › 「效能」(admin/settings/performance) 裡設定的,當然啦,如果大德覺得這個內建的不夠用,那麼也是可以考慮加強版的 Boost 模組,不過,今天還是先來用用內建的試試看囉 !!

這個效能的設定項目不是很多,最主要是要有概念就不難懂哩 ! 接下來就來說明一下囉 !! 首先當然是要到 「管理」 › 「網站設定」 › 「效能」才能開始吧 ! 呵..呵....。

「快取模式:Caching mode: 」
這裡有三個選項,第一個「關閉」就不多說了,第二個就是如果有特殊的考量,就是沒有特別懂得要怎麼調校快取的時候,就用這個吧,阿舍就是用這個,不敢用第三個的「主動式」,因為阿舍不是專家 ( 上面有說專家來用會比較好...呵..呵 ),但是,為何這個「主動式」( 原文是 Aggressive,依阿舍的不負責任翻譯,就叫做「敢死的」,就是很努力達成目標的意思.....) 不建議使用呢 ? 因為它是「欲練神功,必先自宮」的無敵神功啊 ! .......=____=!!。

好吧 ! 雖說這個「主動式」沒有那麼嚴重,但也差不多了,主要是因為這個「主動式」的功能為了達到更快速的效能,所以,當然是會去省掉一些動作,據說是省去模組的載入和退出的程式,因此,當有個固執的模組一定要在載入或退出的程序裡跑一些程式時,就..就不知會出什麼問題了,所以是會有副做用的....,基於安全的考量,阿舍是建議位大德如果真的想用,還是先在測試區試過再說,千萬別太衝動啊 ! ( 記得好像有個叫做 「若不自宮,亦可練成」的故事哩 !...呵呵 )

「最短的快取保存時間:(Minimum cache lifetime: )」
這個選項的用途在前面阿舍就有提過了,就是要告訴 Druapl 多久把它的快取更新一次,時間設的越長,效能就越好,客人就閃的越快....=____=!!,因為時間越久,更新的速度就慢,當網頁有更新的時候,那麼新來的人客還是看不到新內容,就會以沒更新,就會閃了....。

所以這個是要考量各位大德網站的頻率來設的,如果是有很多人發言,一天有好幾篇新發表的站,就要把時間設為短一點,如果是很少人發言的站就可以設久一點。( 阿舍! 請問一下,很少人發言的站幹嘛還要用快取啊 ! 喔 ! 發言少的站,還是有高量的嘛 ! 所以還是會需要的哩 ! )

整合並壓縮 CSS 檔案:(Aggregate and compress CSS files: )」
為什麼要用這個功能呢 ? 是這樣的,當一個網頁裡有包含多個要下載的 CSS 檔時,瀏覽器是同時去向伺服器要求下載這些 CSS 檔,所以,各位大德可以想像一下,模組越裝越多,附掛的 CSS 檔也就會越多,所以對伺服器來說是種負擔的。

這個功能的目的就是把這些多個 CSS 綁綁在一起,降低下載的要求數量,可以節省頻寬及增加效能,所以,是一定要啟用的哩 !!

完成上面的設定後,按「儲存設定」就可以開始啟用快取功能了,不過,建議各位大德在啟用之後,還是要觀察一下效果如何,尤其是有關「快取保存時間」是要調校一下才好,不然會有反效果的.....。

Drupal caching, speed and performance
http://drupal.org/node/326504

Boost 模組
http://drupal.org/project/boost

Drupal core caching
http://2bits.com/articles/drupal-core-caching-and-contributed-content-caching-modules.html


大德 (未確認)
我一直以为drupal的cache

我一直以为drupal的cache不是用的静态html啊……
并不是说drupal的cache是把从mysql/pgsql读取的资料生成了静态html……
cache能启作用,作用不在于生成静态html。drupal的运行是访问一个页面,跑一遍代码,输出结果。 而许多时候,比如对匿名的用户来说,并不需要每次访问页面都跑一遍代码,因为反正输出结果有相同可重复的部分。 于是drupal就有了cache机制,在匿名用户访问页面的时候,不再需要完整的之行代码。 drupal在代码运行的头部,就知道了不需特别为了这个用户完整运行一次,而是立刻中断这个过程,从cache数据表里读取出现成的缓冲的内容,输出给用户。

也就是说,drupal的cache并不是生成静态html——事实上在默认的default/files下也并没有对应的html文件啊……——而是把完整的代码运行过程省略,直接读取数据库了。

打个比方,最开始drupal需要计算1+1=2,有个运算的过程。启用了cache后,drupal就不需要这个过程了,直接去数据库里把现成的缓存结果2给读取出来了。

所以说,阿舍的想法是好,但启用cache后呢,并不会真的给数据库减轻多少压力呀。何况drupal的瓶颈部分从来不是大众想象的在数据库部分,还是在代码本身。

——
这是我所理解的drupal性能障碍所在。 我在大陆,访问阿舍烧制的feedburner并不方便,如果阿舍有其他意见的话,欢迎来信哦~

大德 (未確認)
当然,boost模块是可以

当然,boost模块是可以生成静态文件……

Arthur Yu
Arthur Yu 的照片
User offline. Last seen 1 小時 20 分鐘 ago. Offline
Joined: 12/17/2007
被抓包了..呵呵

Hello,

果然還是被發現了,阿舍是真的寫錯了,這位大德說的才是對的,阿舍這篇本來是在寫 Boost 模組的,後寫一寫才發現,好像是該先說一下效能的設定才對,所以就偷懶直接後面改,前面就沒有好好去修改,現在有調整和補充說明,多謝這位大德的提醒...^^!!。

阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw

供參囉 !!

阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw

Arthur Yu
Arthur Yu 的照片
User offline. Last seen 1 小時 20 分鐘 ago. Offline
Joined: 12/17/2007
6.x 的效能設定

6.x 的效能設定多了對 Page和Black 的快取以及 Javascript 的壓縮後傳送的功能,不過,Page 的壓縮與快取功能不適用於已經啟用壓縮功能的 Web Server,但是,要怎樣才能知道 Server 有沒有啟用壓縮功能呢 ? 阿舍去查了一下,大都是要看 http.conf 檔的內容,看是不是有啟用 mod_gzip 或是 mod_deflate 模組,所以,如果大德是用 Hosting 的話,可能直接發個 Ticket 問一下,可能會比較有保險哩....。

而 Block 的快取也是有一些些限制的,因為有權限控管的資料是需要每次使用者開啟時檢查的,所以,只要是有讀取限制的 Block 是不會被列為快取的,如果大德的區塊都有做讀取的控管的話,這個 Block 快取的功能應該是可以不用啟用了...。

另外,在 Drupal 6.x 的效能設定裡,就可以直接按按鈕把快取給清除掉的....。

阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw

供參囉 !!

阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw

虚拟主机 (未確認)
动态的好还是静态的好

网页动态的好还是静态的好?做完了,要选什么样的虚拟主机

發表新回應

此欄位內容將保密,不會公開顯示出來。
  • 自動將網址與電子郵件位址轉變為連結。
  • 可使用的 HTML 標籤:<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 自動斷行和分段。

更多關於格式化選項的資訊

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Google 廣告 Cookie 和隱私權政策
當您造訪我們的網站時,我們會透過第三方廣告公司來放送廣告。這些公司可能會使用您在本網站和其他網站上的相關瀏覽資訊 (不含姓名、地址、電子郵件地址和電話號碼),以便提供閣下感興趣之產品和服務的廣告。如果您想要瞭解此作法的詳情,以及如何選擇不讓前述公司使用您的資訊,請按這裡

Drupal 7 預計釋出日期

最早為 2010/08/30
最晚為 2010/10/14
目前版本 Drupal 7.0-alpha6
待處理的 "嚴重問題" 還有 41 個...

詳細內容請參考這裡

*註 : 以上日期是依據目前解決被列為 "嚴重問題" 的處理時間所做的線性和對數預測...,至於有那些問題,請參考這裡

BloggerAds

Drupal 新聞

阿舍的 Plurk

誰正在看什麼...