Magento2 使用原生程式分析工具尋找效能瓶頸
Magento是個龐大複雜的開源軟體,當網站遇上效能不佳的情況,通常我們可以先參考以下相關文章,執行通用的優化步驟:
假設以上皆已調校,卻仍面臨部分頁面執行時間過長,表示需要進一步分析程式個別執行效能,才能找出改善的關鍵點。幸運的是,Magento原生程式即支援此功能,趕快來瞭解如何快速的分析網站的程式效能吧!
要開啟此基本效能分析工具,首先要為伺服器設定環境變數 MAGE_PROFILER,設定為 html 表示要直接於網頁上顯示分析果;設定為 csvfile, 則是將分析結果匯出至 var/log/profiler.csv。
以設定 MAGE_PROFILER=html為例,如果伺服器是 apache,請修改網站根目錄的 .htaccess,增加 SetEnv “MAGE_PROFILER" “html"。
如伺服器為 nginx,則修改該網站所屬的nginx.conf,增加 fastcgi_param MAGE_PROFILER html; ,以下為修改 nginx.conf.sample 的範例:
設定調整後,務必重啟伺服器讓設定生效,然後執行magento 快取清除指令 php bin/magento cache:flush。
回到網站開啟任一頁,於頁面底部會出現如下的即時的分析報告:
這份報告包含幾個效能分析的基礎要素:
1.Timer Id
計時ID,由原生程式所定義的程式區塊,通常為關鍵的 function 或 method。
2.Time
每個計時ID累計的執行時間總和,單位為秒。
3.Avg
這個計時ID平均執行所需的時間,單位為秒。
4.Cnt
這個計時ID被呼叫的次數。
5.Emalloc
為執行此段程式所分配到的記憶體量,單位為 bytes.
6.RealMem
為執行此段程式實際上使用的記憶體量,單位為 bytes。
透過這分報告,我們可以得到程式執行所需的時間與記憶體量,找出效率低落的關鍵程式加以優化改善。
除了這個基本工具,還有一個免費的開發工具可以提供更進階的分析 –
ADM_QuickDevBar
https://github.com/vpietri/magento2-developer-quickdevbar
安裝此模組後,於伺服器端下啟用指令 php bin/magento module:enable ADM_QuickDevBar,啟用模組後需清除快取。
要特別注意的是,只有在網站部署是開發者(developer)模式下,此工具才會有作用。
成功啟用後,此時開啟網站,頁面的左上角會有一隻小蟲圖示:
點擊該圖示,展開如下的選單:
此份分析除了包含原生的基本分析,最重要的是多了資料庫讀取的效能分析。
此分析會列出所有對資料庫查詢的語法與執行時間,除了可以找出效率不佳的SQL語法加以改善,也可以找出是否出現不必要的重複查詢,透過調整程式流程或置入快取省下查詢資料庫的時間。
以上,就是一般普遍用來尋找效能瓶頸的資訊。只要簡單透過Magento原生設定或安裝Magento Extension即可輕鬆取得,那麼我們下次再見囉!
如果有您有更多疑問可以詢問我們,未來會撰寫更多電商網站相關文章,您想知道什麼嗎?歡迎在下方留言給我們。或追蹤我們的粉絲專頁,就不錯過最新文章喔!
想學習更多Magento設定嗎?請見:Magento教學導覽
我要留言