使用 Cloudways 最常遇到 CPU 超載(100%)的幾種狀況

最近更新日期 2022-04-16

隨著自架網站的知識普及,各種免費、付費的 WordPress 課程出爐
很多人都可以自架個人網站,甚至是電商網站
架設 WordPress 網站起步的主機選擇
也從過去最常推薦給新手的藍色主機
到漸漸大家發現共享主機的缺點
開始推薦 VPS 主機

但純指令的操作方式對新手又難以入場
所以圖形化的 VPS 管理服務 Cloudways
就幾乎是目前新手村畢業後的主流選擇之一

這幾年使用 Cloudways 下來
蠻常遇到自己或客戶的網站速度變慢、無法連線的問題
跟 Cloudways 客服聯繫之後
幾乎都是 CPU Usage 在 100% 高峰
而導致的原因通常是下面兩個程式頻繁被執行

  1. Wp-Cron
  2. Admin-ajax.php

這兩個問題 Cloudways 的客服都有標準解答:

wp-cron 執行次數過高

wp-cron 是 WordPress 內建的程式
在網站被瀏覽時會被觸發去執行一些定期排程任務
當觸發次數太多,多次執行 wp-cron 就會造成 CPU 使用率過高
Cloudways 會你一份教學文件

How to Manage WordPress Cron Jobs

簡單來說,就是修改 wp-config.php 文件
在裡面加上

define('DISABLE_WP_CRON', true);

但這邊要注意,這個程式碼要放在以下的註解「之上」才會生效

/* That’s all, stop editing! Happy blogging. */

接著再設定 Cloudways 主機端的
Cron Job Management 來取代 wp-cron
在 Cloudways 後台網站 Application 設定
Cron Job Management > Advanced 加入:

*/5 * * * * wget -q -O - 'https://yourdomain.com/wp-cron.php?doing_wp_cron'

上面 https://yourdomain.com/ 要換成你自己的網域名稱

Admin-ajax.php 執行次數高

admin-ajax.php 這也是內建程式
至於用途什麼這裡不贅述,Goolge 可以找到
重點是過於頻繁 POST 請求這個程式通常是某個外掛造成的
Cloudways 客服會給你一個文件

What Is AJAX and How to Use It in WordPress (A Step-by-Step Guide)

會教你使用 GTmetrix 來找出是哪個外掛
或者直接安裝 Heartbeat Control 這個外掛
來管理觸發頻率或停用 Heartbeat API

但不巧,我遇到的狀況
通常上面兩個方法都沒辦法解決…
在網站的 Monitoring > Traffic 中
還是看到一大堆 /wp-admin/amdin-ajax.php 存取次數

只能對照其他網站安裝的外掛
用排除法找出來是哪個外掛造成的

在 Facebook 社團上看過 2015 年有人找出來是 AnsPress
我最近一次找到是 Inactive Logout
這是一個用來自動登出閒置使用者的外掛
原本設定 15 分鐘的期限
改成 90 分鐘,主機的負擔就大幅下降了

如果你也被相同問題困擾,也許你剛好用了相同的外掛
恭喜你!


但如果沒有,就只好用排除法來試試看囉~


最後,相信來看這篇文章的你
應該都是 Cloudways 的使用者了
我就不放上我的 Cloudways 推薦連結了 XD
(有需要可以在 工具推薦 找到)

如果這篇文章對你有幫助,就鼓個掌讓我知道有幫到你吧 😀

請留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *