joomla cms 效能調校

36
Joomla CMS 效能調校 2015 - Joomla Party #12 Simon Asika

Upload: asika-simon

Post on 17-Jul-2015

341 views

Category:

Internet


1 download

TRANSCRIPT

Joomla CMS 效能調校 2015 - Joomla Party #12

Simon Asika

關於效能

⾸首先,我們要知道效能分成

「前端」與「後端」,還有「網路」

後端效能

前端效能

網路的影響

關於後端效能

¤  ⼤大多在 300ms 到 900ms 之間。

¤  跟安裝的套件有關,套件越多、越複雜,則效能越差。

¤  對主機端 CPU 壓⼒力較⼤大

¤  可以靠「快取」來優化

關於前端效能

¤  ⼤大多可以達到 2sec ~ 15sec

¤  對客⼾戶端 CPU 壓⼒力較⼤大

¤  是訪客最有感覺的部分

¤  優化的效果也最明顯

關於網路連線效能

¤  選擇合適的主機商(台灣 > 東京 > 美國)

¤  DNS 解析與⾃自家網路也有影響

¤  尖峰時段也會受影響

優化效能的目的

¤  快,是其次,現在的網路與機器都很快了

¤  多,才是⺫⽬目的

¤  當流量越來越⾼高時,效能好的網站才能撐住更多⼈人潮

如何優化後端效能

對後端效能有影響的項目

¤  系統

¤  簡潔網址的影響很⼤大

¤  但這幾乎是必備了,很少做這⽅方⾯面優化

¤  GZIP 會使主機負擔變重(但網路傳輸可加速)

¤  MySQL 肯定⽐比 PostgreSQL 等其他資料庫快

¤  開啟 FTP 會使任何檔案操作都變慢

¤  選單數量會有微幅影響,但超巨量時才會變慢

對後端效能有影響的項目

¤  元件

¤  元件只有在⾃自⼰己的⾴頁⾯面才會有影響,除此之外裝得多影響不⼤大。

¤  元件⾴頁⾯面使⽤用了幾次 SQL query 是影響最⼤大的部份

¤  MySQL 內資料表有沒有做好正確索引影響也很⼤大

¤  縮圖程式、抓取站外資料等等也都會變慢

¤  快取是否有寫的好是重要關鍵

對後端效能有影響的項目

¤  模組

¤  同樣,裝的多也不⼀一定會影響效能

¤  單⼀一⾴頁⾯面出現多少模組的效能影響較⼤大

¤  其他部分與元件⼀一樣,多少 SQL query 與外部資源都會影響速度。

¤  快取也同樣可以優化。

對後端效能有影響的項目

¤  外掛 ¤  外掛是背景運作,會監聽網站執⾏行事件

¤  裝的越多影響越⼤大

¤  若把⽤用不到的關閉,就不會影響了(不⼀一定要移除)

¤  System 群組的外掛數量影響⾼高於其他群組

¤  因為System⼀一定會載⼊入,其他外掛根據需求才載⼊入

¤  若有影響,則幾乎每⾴頁都受影響,不像模組只有顯⽰示出來的畫⾯面受影響

對後端效能有影響的項目

¤  佈景 ¤  也是重要的影響效能的因素

¤  但較難改善,因為佈景⼀一定要載⼊入

¤  雖然各個套件的純「安裝」數量不影響效能,但裝到破千時,「後台」操作效能會變慢(前台讀取受影響有限) ¤  由於這些概念牽涉到程式本⾝身的核⼼心設計,較難解釋,只能請⼤大家暫時

記住這些規則。

優化後端效能的建議

¤  主要⺫⽬目的:

¤  盡可能減少 SQL 執⾏行數量、複雜運算的數量

¤  能快取,就盡量開快取

¤  保守快取 – 只快取元件⾴頁⾯面(模組還是會刷新)

¤  累進快取 – 將模組等等周邊資源通通快取(隨機之類的就失效了)

¤  全⾴頁快取外掛 – 整個⾴頁⾯面靜態快取下來(超⾼高流量時⽤用)

優化後端效能的建議

¤  保持⾴頁⾯面整潔

¤  不要塞滿模組與外掛

¤  控制選單數量

¤  影響真的很少啦,不要緊張

¤  慎選套件

¤  有些元件本⾝身效能就不好(如K2),這是末端很難優化的

優化後端效能的建議

¤  若沒必要,不要打開 Gzip 壓縮

¤  將css, js, images等資源移到外部空間(S3, imgur.com等) ¤  降低 Apache 負擔

¤  流量爆衝時,內容網站可以開啟全靜態快取

¤  如果可以,盡量⽤用原⽣生⽂文章來取代任何第三⽅方元件 ¤  原⽣生元件效能是最好的

如何優化前端效能

對前端效能有影響的項目

¤  <head> 內的 CSS & JS 載⼊入數量

¤  ⾴頁⾯面上的圖⽚片數量與⼤大⼩小

¤  Javascript 的程式效能

¤  無法改變,都是⼈人家寫好的

¤  ⽤用⼾戶端裝的瀏覽器外掛

對前端效能有影響的項目

¤  內嵌的第三⽅方服務

¤  Youtube, Facebook Like, Twitter, Google+ 等

¤  此項⺫⽬目影響特別重

¤  因為等於在⼀一個⾴頁⾯面中多讀取了好幾個網站

¤  會讓⾴頁⾯面載⼊入時⾮非常頓,無法操作

¤  瀏覽器對於 css, js 與 DNS 的快取

優化前端效能的建議

¤  壓縮 CSS, JS 成單⼀一檔案

¤  效果顯著 (21 requests 減少到 4 requests, 1.2sec --> 700ms)

優化前端效能的建議

¤  使⽤用圖⽚片 Lazy Loading 外掛 ¤  滾到的時候才載⼊入進來,⽽而不是⼀一⼝口氣全載⼊入

¤  預先把圖⽚片縮到適合⼤大⼩小 ¤  免得上傳⼀一個 5MB 的圖⽚片每次開啟⾴頁⾯面都會載⼊入⼀一次

¤  或是善⽤用會⾃自動幫你縮圖的套件

¤  不要裝奇奇怪怪的⼀一堆社群外掛 ¤  我現在都只留 FB like ⽽而已了

優化前端效能的建議

¤  使⽤用 Google 網站效能檢測

¤  https://developers.google.com/speed/pagespeed/insights/

如何優化網站連線效能

選擇連線快速的主機

¤  台灣中電信主機最快

¤  但⼤大家都知道的:貴

¤  功能通常輸國外⼀一截

¤  美國主機較便宜

¤  但速度⽐比國內主機慢了三倍以上

¤  東京主機通常是折衷⽅方案

善用 CDN 服務

¤  CloudFlare 可以幫你把網站的靜態⾴頁⾯面快取下來,分散到世界各地,加速存取

¤  台灣也有 CDN 機房喔

¤  DNS 的解析速度與閘道也有影響

¤  但不是我們市井⼩小⺠民可以調整的

用戶的網路環境也很重要

¤  台灣........

¤  就認命吧

¤  學網連中華電信機房快的破表

¤  連國外就超慢

¤  所以幫學校做網站千萬別⽤用美國主機

我們真的這麼需要優化效能嗎?

優化的目的是什麼?

¤ 增加讀取速度?

¤ 還是為了乘載更多流量?

優化的成本划算嗎?

¤  花那麼多時間調整效能,成本會不會⽐比直接升級機器⾼高?

¤  ⼀一年遇到幾次流量爆衝?

¤  網站撐不住會損失收⼊入嗎?

¤  幫客⼾戶處理還是⾃自⼰己的網站?

¤  爽度問題還是真的有差?

尋找最有 CP 值的優化方案

¤  壓縮 CSS, JS 只要簡單裝個外掛 ¤  效果卻⽐比⾟辛苦調整後端⼤大好幾倍

¤  網站剛上線,反正也沒⼈人潮~~~ ¤  流量之後爆了,也是笑著改網站

¤  善⽤用⾃自動壓縮圖⽚片等⼯工具,省去⼈人⼯工操作的時間

人員訓練也很重要

¤  圖⽚片上傳前有沒有先裁好⼤大⼩小?

¤  懂不懂得分散圖⽚片到圖床去?

¤  知不知道不應該亂裝外掛?

¤  會不會設定 CDN? 失效時能不能修復?

提問時間

Thank You