Drake's Weblog

1 minute read

Drupal Modules 這個網站的原作者 John Forsythe 在他的網站上頭寫了一篇How I Survived a 2300% Traffic Increase With Drupal,裏頭提到:他在他網站,寫了一篇有關 Drupal 的文章,因為被放到 Reddit 的首頁(性質就像 funPHEMiDEMi 的網站),於是那幾天的流量,直接增加了 2x 倍。

他言簡意賅地,以條列式的方式舉出了五點,如何讓你的 Drupal 可以撐過這類的災難(撐過災難,你的網站就離大紅大紫又更近一步了)。其中,只要做到前兩點,就可以有某種程度上的改善。我在這邊做個簡單的翻譯,有興趣的人可以看他的原文

  1. 開啟 CSS Aggregation
  2. 開啟 Page Caching
  3. 關掉那些花費不少資源的 block
  4. 讓你的圖檔盡量地小
  5. 使用一個靠得住的網站空間提供商(web hosting)

開啟 CSS Aggregation

Drupal 的成功因素之一,來自於它廣大的社群與豐富的模組,但這也間接造就了大量的 CSS。如果你建置了一個使用 40 個模組的 Drupal 網站,裏頭,可能會有 20 個模組有各自的 CSS 檔,加上 Drupal 與 theme 原有的…也就是說,對於一位來逛你網站的人,他(她)至少得下載 20 多個 CSS 檔才有辦法看到完整你的網站。

這 20 多個 CSS 檔的下載,會讓瀏覽你網站的人,因此得多等待個幾秒,然後呢,如果遇像上流量大的時候,說不定還因此讓你網站的機器掛了!! 很幸運地,有個簡易的解法:CSS Aggregation。從 Drupal 5 開始,Drupal 有個功能,它可以把幾乎所有的 CSS 檔合成一個,這樣一來,來瀏覽網站的人,就只要下載一次,節省了還蠻可觀的時間。

開啟 CSS Aggregation 的功能:Site Configuration > Performance. Enable CSS Aggregation

Drupal 6 還提供了 JavaScript Optimization,一樣是讓很多個 javascript 檔變成一個。Drupal 5 的話,可以使用 JavaScript Aggregrator 這個模組來做到同樣的事。

開啟 Page Caching

Page Caching 是另一個與網站的效能有關,非常重要的一個功能。

開啟 page caching 對於沒有註冊的使用者來說,他們瀏覽到的網頁大多是經過 cache 的,所以並不需要與資料庫進行數次至數十次的存取,只需要兩三次即可,效能的改善很明顯。

大部分的 Drupal 網站,只需要開啟 “normal” 模式就行了喔。

關掉那些花費不少資源的 block

這一段大略的意思是說,大部分的使用者,經由 social-media 這類的網站(ex, funP, Reddit, Digg) 來到你的網站上時,就只會看那麼一篇,並不會去點選你網站上的其它網頁。所以呢,與其放了很多佔用系統資源的 block,還不如只留下比較有用的,其餘的(像是亂數秀出一些照片)就拿掉,這樣就可以讓你的網站在面臨突然的大流量時,活了下來。

所以得多多利用每個 block 的 block visibility 區塊,跑選擇性地決定每個 block 出現的時機。

ex,

讓你的圖檔盡量地小

如果你的網站上頭使用了大量的 PNG 圖檔,那就一定要試試 PNGOUT,這個可以讓你的 png 大大瘦身的軟體。作者說,經過他的使用經驗與比較,PNGOUT 硬是比 OptiPNG, PNGCrush, 和 AdvPNG 來得好,產生出來的檔案就是比較小。

使用一個靠得住的網站空間提供商(web hosting)

這一部分就沒什麼好提的了,因為大家都知道,選一個好的 web hosting 真的是差很多!!!!

又,如果想更進一步了解怎麼優化你網站的效能,可以參考原作者的另外一篇文章:How Database Configuration Can Slow Down Drupal.

翻譯後的個人看法:

接下來是我自己對於他的文章的一些看法:

  • 首先,我覺得前兩點真的可以改善一個網站的效能很多,尤其當你確定不會對網站的功能有任何改變,所以 css, layout, node, block, page 這類東西都固定的時候,打開 css aggregration (javascript optimization) 與 page caching 真的改善很多。重點是,這兩個功能的開啟只是點點滑鼠就好了。
  • 其次,我因為工作需要,常常使用 PNG 來做為網站的圖示,經過試用後,發覺 PNGOUT 真的很優,推薦。
  • 這是一篇教大家怎麼以很簡易的方式,讓 Drupal 加速的方式。會有這些需求,主要是因為 Drupal 的模組功能很強大,加上它一直提倡 MVC (它叫 MTV),所以無法單單就網站效能優化多少。不過也因為它這麼有彈性,才會讓我們都一股腦兒愛上它的吧 :)
  • 感謝原作者願意提供他網站上的圖片供我使用 :) Thx for John’s kind for letting me make use of those screenshots located on his website.
comments powered by Disqus

Recent posts

Categories

About

You're looking at Drake's words or statements. All opinions are my own.