
沒想到阿舍也來到了這一天,不知各位大德有沒發現,阿舍的這個站的反應速度,有時真的有點給它很慢,偶爾還會連不到,或是出現資料庫連線太多而連不到資料庫的情形,阿舍發現之後,馬上就給它用那個 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
- 瀏覽次數: 3106
当然,boost模块是可以生成静态文件……
Hello,
果然還是被發現了,阿舍是真的寫錯了,這位大德說的才是對的,阿舍這篇本來是在寫 Boost 模組的,後寫一寫才發現,好像是該先說一下效能的設定才對,所以就偷懶直接後面改,前面就沒有好好去修改,現在有調整和補充說明,多謝這位大德的提醒...^^!!。
阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw
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的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并不方便,如果阿舍有其他意见的话,欢迎来信哦~