如何修復 WordPress 中的高 CPU 使用率

已發表: 2022-10-25

本文將帶您通過一些方法來修復 WordPress 中 CPU 使用率高的常見原因。

更新 WordPress

這是最簡單的修復方法,因此最好先從這裡開始,然後再進行更複雜的修復。

缺少主要的 WordPress 更新將導致您的網站性能欠佳,進而在主機服務器上產生更大的 CPU 負載。

幸運的是,只需單擊一下即可更新 WordPress! 只需轉到儀表板>更新。 在這裡您可以查看是否有新版本的 WordPress 可供安裝。 單擊“立即更新”,一切順利!

檢查你的插件

插件是導致 WordPress 性能問題的最常見原因之一。 插件會以多種方式耗盡您的 CPU 資源:

  • 一些插件運行持續的後台任務
  • 某些插件可能已過時或未運行穩定版本
  • 一些插件帶有大量您不使用但仍在後台運行的功能和設置
  • 插件可以實現導致重定向循環的重定向

您可以使用 WP Hive Chrome 擴展來檢查您的插件對網站性能的影響。 或者您可以通過禁用插件以查看其影響的老式方式來實現。

確保您的網站已優化

如果您的 WordPress CPU 使用率高達 90+%,那麼很可能是由託管或流量高峰引起的,您應該首先解決這些問題。 但是,通過一些簡單的技巧來加速您的 WordPress 網站,以簡化您的網站並減少 CPU 負載始終是一個好主意。 這些包括:

  • 縮小和壓縮文件
  • 緩存
  • 優化圖像
  • 在外部託管視頻

禁用 WP-CRON

Cron 是一個命令行實用程序,可以安排任務自動執行。 這些命令被稱為“cron 作業”。 在 WordPress 中,cron 作業由 WP-CRON 處理。 然而,WP-CRON 只是 WordPress 用來模仿真實 cron 作業功能的一個功能。

WP-CRON 可能會導致性能問題,因為它會在每次加載頁面而不是按定義的時間表加載時觸發。 這意味著在高流量的情況下,WP-CRON 會在每次有人加載頁面並給服務器帶來額外壓力時檢查計劃的事件。 另一方面,如果站點沒有太多流量,如果沒有人加載頁面,則可能會錯過計劃的事件。

對於很多人來說,最好簡單地禁用 WP-CRON 並改用真正的 cron 作業。

如何禁用 WP-CRON

要禁用 WP-CRON,您需要編輯 wp-config.php 文件並添加以下命令:

 define('DISABLE_WP_CRON', true);

把它放在“/*That's all, stop editing!”這一行之前。 快樂出版。 */”。

disable cron

如何製作自己的 cron 作業

禁用 WP-CRON 只會阻止它自動執行,但您仍然可以設置真正的 cron 作業來執行 wp-config.php 命令。

有幾種不同的方法可以做到這一點:

  • 您可以通過託管服務提供商的控制面板設置 cron 作業。
  • 如果您使用 cPanel,您可以通過轉到 Advanced>Cron Jobs 並在那裡進行設置來安排 cron 作業。
  • 使用 WP Crontrol 等第三方插件。
  • 在 SSH 中手動配置 cron 作業。

將內容卸載到內容分發網絡

content deliver network

當有人從遠離主機服務器的國家/地區訪問您的站點時,數據到達他們的計算機需要更長的時間。 交付這些資源所花費的額外時間佔用了主機服務器的處理能力。

這個問題的答案? CDN(內容分發網絡)。

內容交付網絡是一個由地理分佈的服務器組成的系統,其中包含來自您站點的靜態資產的緩存版本。 您可以將內容卸載到這些服務器,以便用戶從離他們最近的服務器接收資產。 這會導致更快的加載時間、更好的用戶體驗,最重要的是,它會大大降低 WordPress 網站的 CPU 使用率。

阻止不良機器人

毫無疑問,您已經熟悉 Google 的機器人。 這些是“好機器人”。 他們為搜索引擎抓取您的網站並將其編入索引,您的 SEO 圍繞著他們展開。

但是,每天都有更多的機器人訪問您的 WordPress 網站。 很多這些機器人都不是惡意的,但它們會增加您網站的流量,從而給您的 CPU 帶來不必要的壓力。

您可以查閱此常見爬行機器人列表,以了解要阻止哪些機器人進入您的網站。 要阻止特定用戶代理抓取您的網站,您需要使用以下格式在 robots.txt 文件中創建規則:

 User-agent: BotName Disallow: /
block bad bots

“/”表示您已將它們從根目錄以及您的整個站點中阻止。 如果你只想禁止來自某個目錄的機器人,你可以寫:

用戶代理:BotName

 Disallow: /DirectoryName/

您還可以通過添加以下規則通過 .htaccess 文件阻止機器人:

 RewriteEngine On RewriteEngine On RewriteCond %{HTTP_USER_AGENT} UserAgentName [NC] RewriteRule .* - [F,L] To block multiple bots, format your rule like this: RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(Bot1|Bot2|Bot3).*$ [NC] RewriteRule .* - [F,L]

或者,您可以使用插件來捕獲討厭的機器人程序,從而省去手動檢查和禁止它們的工作。

我推薦 Blackhole for bad bots 插件。 它有一種非常聰明的方法來捕捉不良機器人,有點像將黃蜂困在一杯糖水中。

該插件會添加一個指向您網站的鏈接,該鏈接僅對爬蟲可見。 此鏈接用作誘餌。

然後,您在 robots.txt 中添加一條規則,禁止機器人訪問此鏈接。 當然,垃圾郵件機器人會無視此規則並點擊該鏈接。 一旦他們這樣做,他們將立即被禁止訪問您的網站。

很聰明,不是嗎?

查看您的託管選項

如果您的 WordPress 網站正在為高 CPU 使用率而苦苦掙扎,很可能是您沒有從託管服務提供商那裡獲得足夠的服務器資源。 如果您使用的是共享主機,則尤其如此。 共享主機是導致 CPU 超負荷工作的最常見原因之一,因為您一直在與服務器上託管的所有其他網站爭奪權力。

如果您認為自己的共享主機已經無法滿足需求,那麼是時候檢查一下其他類型的主機提供商了:

  • 虛擬專用服務器 (VPS) 託管:您仍然共享一台服務器,只是它被劃分為虛擬分區,因此您可以擁有內存、CPU 核心和存儲等專用資源。 您與其他站點有效隔離,因此服務器上另一個站點的突然流量激增不會影響您。
  • 雲託管:如今,雲託管越來越受歡迎。 從本質上講,它的工作方式有點像 CDN。 您的站點存儲在虛擬和物理服務器網絡中,而不是單個服務器中。 雲託管通常更便宜,因為您只需為使用的資源付費。 此外,由於您分佈在多個服務器上,因此您可以獲得額外的安全性、更可靠的正常運行時間以及本質上無限的可擴展性。
  • 專用主機:通常被認為是虛擬主機的精華,此選項提供您自己的服務器,讓您 100% 控制您使用的服務器資源。 另一方面,它通常是最昂貴的選擇,並且需要一些技術專長才能正確管理。
  • 託管主機:使用託管主機,您的主機提供商基本上會為您管理您的服務器。 它們將涵蓋維護、更新和安全性等內容。 這更像是其他類型託管的附加組件。 您可以擁有託管共享主機或託管專用主機。

結論

降低 CPU 使用率將極大地改善您的 WordPress 網站的整體健康狀況,從而提高性能、更一致的正常運行時間和更好的用戶體驗。 雖然本文中的許多技巧可以幫助您減少 CPU 負載,但如果您網站的 CPU 一直超載,那麼這幾乎肯定是託管問題。