最後更新時間: 2024 年 08 月 02 日
在某年中秋節的晚上,我愜意的在邊吃著月餅、邊編輯文章,突然我的網站顯示了 Database Error 資料庫錯誤之後,就徹底無法連上線了。
緊張的我趕緊連上我的 Cloudways 後台,緊張的詢問線上客服是怎麼回事,後來發現原來這一切的主因是最近正在進行的網站翻新工作所用到的工具:Elementor。
這篇文章簡單紀錄,也分享給可能遇到類似情況的大家。
怎麼發現網站當機的?
這次是剛剛好在我正在編輯團隊夥伴文章的當下發生,第一時間看到我就馬上密 Cloudways 客服緊急處理了。
其實在事件發生的當天晚上,我們團隊的小A就跟我說:「網站怎麼好像跑得有點慢?」
我聽完其實沒有太在意這件事,因為過往網站好像蠻常因為「所處環境網路速度」、「瀏覽器裝的一些擋廣告插件」或者是「電腦速度」而會運行的比較慢,因此我就把他當作往常的常態而忽略了。
而過了大約幾十分鐘,當我剛好編輯文章到一半,點擊了其中一篇文章之後,出現了以下畫面:
當下我就意識到:「挖賽,事情大條了。」趕緊放下手邊的工作立刻來處理這個問題。
當機第一時間該如何處理?如何判斷問題出自哪裡?
因為我自己是工程師底子,當下我看到這個「Database 網站資料庫連不上」的錯誤,第一個聯想到的是「肯定是主機死掉了」。
原因是 Cloudways 架站所設定的 WordPress 網站基本上 WordPress 背後的資料庫與系統都是一整套安裝的,如果你沒有刻意安裝什麼網站外掛,基本上 Database 不太會突然故障。因此這邊的連不上應該就是整個存放網站檔案與資料庫的網站主機壞掉了。
這時候我第一個想法就是去「詢問 Cloudways 客服」,這也是為什麼我大推網站、部落格的初階經營者使用 Cloudways 來代管網站的原因,因為它價格不算貴、卻又可以有 24hr 客服人員(Google 翻譯溝通也行得通),並且有很多代管功能可以省去你 Debug 網站的時間。
如果你自己並不是工程師,那我也會非常建議你只要發生任何問題,第一時間處理方式絕對是去找到你的網站主機商、主題商的客服人員,直接把問題丟出去等待他們回覆,會是最有可能解決問題的方式。(如果是我,我應該也會同步丟問題給我身邊認識的工程師朋友啦~XD)
與 Cloudways 客服的對話流程
在與 Cloudways 客服對話過程中,我其實沒有太在意我的英文使用的是否正確,所以如果大家也是使用 Cloudways 主機商的話,根本不用害怕去密客服人員。
就把妳的問題直接用中文或你習慣的語言直接丟到 Google 翻譯,原封不動翻成英文,再丟給客服人員、附上狀況截圖就好!
以下也紀錄一下客服完整幫我排查可能原因的過程,雖然對方一直叫我去找我的「網站工程師」(就是我自己阿!),但過程中他也幫我分析了很多可以優化網站速度、降低 CPU 負載的方法,覺得很值得分享給大家參考!
步驟一、快速傳達網站緊急狀況
剛發生事件時可以立即回報給客服,可以看到我下面圖片的英文根本就是隨意打的,但對方因為有你的伺服器資料,就可以很輕易的幫助你查出問題。
步驟二、客服協助釐清可能造成 CPU 100% 過載原因
客服在對談過程中,提供了我蠻多有可能造成 CPU 卡頓的原因,這邊我先一一紀錄,未來如果針對每個問題有優化方案,我也會在文中繼續補充的!
排查載入較久的頁面
根據他的調查載入較久的頁面有下方左圖的幾個頁面,可以看到載入最久的頁面就是「/wp-admin/edit.php?post_type=page」,也就是後台的頁面編輯器。
排查載入最久的頁面可以讓我們知道可能是哪邊的問題,不過這邊看了之後會發現幾乎都不是網站本身的文章或頁面,而是後台的編輯頁面造成的負載過重,因此對於一般人來說就比較難去排查後台操作介面卡頓問題,畢竟我們就是載現成的 WordPress 來用的。
不過這邊還是埋了一個最後讓我發現罪魁禍首的梗,大家可以往後看到最後的結論。
釐清 WordPress 在查詢資料時造成負載的那些語法(可給專業工程師參考)
這邊客服也提供了我一些網站資料庫 Mysql 造成卡頓的語法,不過這些語法看起來沒什麼特別的規律(可能是我太淺),不過也許提供給未來幫助你解決網站卡頓問題的工程師,他可能可以推敲出什麼問題也說不定哦!
排查時常佔用網站資源的 Bot 機器人(小心別封鎖到 SEO 爬蟲)
Cloudways 客服也幫我找出了幾個網站常出沒的 Bot 機器人,說我可以封鎖這些 Bot 或許能讓網站比較少無效瀏覽。
而其中 Google bot 以及 bing bot 基本上應該是爬蟲的機器人,因此千萬不要把這兩個 bot 封鎖囉!
其他像是 baidu bot 我猜測應該是中國的搜尋引擎百度的爬蟲,因此建議如果你沒把握的話,還是一個一個 Bot 去用名字查詢他的來歷再封鎖會比較安全哦!免得影響了網站的正常運行
排除 admin-ajax.php 請求過多的問題(找專業工程師協助)
Cloudways 工程師有提供這個教學網址連結可以排除此問題,等待我實際排除後再上來補充作法!
封鎖那些時常到訪網站的無用來源 IP
封鎖 IP 的教學文章可以點這邊連結,客服很貼心的幫我查出了幾個絕對可以封鎖的 IP,你也可以直接到這個網址來查詢你名單中的 IP 是否有其他人回報過是無用的攻擊 IP ,就可以直接封鎖囉!
發現罪魁禍首:Elementor 編輯器開太多分頁
剛好在與客服對話的過程中,也同時與我最近正在合作配合的網頁設計師 Winnie 聊我網站掛掉的事情。
沒想到 Winnie 剛聽說這個消息,第一個回覆我的訊息就是:「我在想,是不是我開太多分頁?」
後來發現原來 Winnie 因為覺得 Elementor 載入有點慢,所以她就把我們所有需要製作的 Elementor 頁面都一次開啟了!(難怪在上方排查問題時,發現後台的 page edit 載入特別吃資源,原來是開了一大堆阿!)
後來把網頁都關掉只留存一個之後,網站的 Cpu 也就慢慢恢復正常了!不過這次的事件也讓我反思:畢竟是專業營運、有收益的網站,這種時不時的當機、卡頓,真的很影響網站的產出效率呀!
因此我也決定到 Cloudways 將我的方案升級一階,讓網站整體速度能夠更流暢!如果之後有時間截圖我升級的過程,再來另外寫篇文與大家分享吧!
如果你對使用 Cloudways 感興趣,可以參考以下三篇新手架站教學文章:
1. 【WordPress架站教學#1】透過Cloudways架設你的WordPress網站!每月12美元即可擁有極致效能!
2.【WordPress架站教學#2】透過NameCheap購買網域!首次購買、續約都便宜!
3.【WordPress架站教學#3】在Cloudways中設定WordPress網域、網站SSL憑證!讓你的網站更安全!若需要從其他網站搬家到 Cloudways ,也歡迎參考底下文章,有超詳細的搬家教學:
1. 【WordPress 網站搬家教學】 SiteGround 主機搬家到 Cloudways,網域搬家到 NameCheap 並綁定 Cloudflare » 領先時代 (leadingmrk.com)
謝謝你的詳細分享。也是碰到一樣的問題,請問最後最少需要升級到cloudway哪個方案(或主機大概spec)來解決elementor editor 佔用CPU資源的問題?
我自己是升級到 linode 主機每月 50 美元的方案,就徹底不會卡頓了~