如何修复 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!”这一行之前。 快乐出版。 */”。
如何制作自己的 cron 作业
禁用 WP-CRON 只会阻止它自动执行,但您仍然可以设置真正的 cron 作业来执行 wp-config.php 命令。
有几种不同的方法可以做到这一点:
- 您可以通过托管服务提供商的控制面板设置 cron 作业。
- 如果您使用 cPanel,您可以通过转到 Advanced>Cron Jobs 并在那里进行设置来安排 cron 作业。
- 使用 WP Crontrol 等第三方插件。
- 在 SSH 中手动配置 cron 作业。
将内容卸载到内容分发网络
当有人从远离主机服务器的国家/地区访问您的站点时,数据到达他们的计算机需要更长的时间。 交付这些资源所花费的额外时间占用了主机服务器的处理能力。
这个问题的答案? CDN(内容分发网络)。
内容交付网络是一个由地理分布的服务器组成的系统,其中包含来自您站点的静态资产的缓存版本。 您可以将内容卸载到这些服务器,以便用户从离他们最近的服务器接收资产。 这会导致更快的加载时间、更好的用户体验,最重要的是,它会大大降低 WordPress 网站的 CPU 使用率。
阻止不良机器人
毫无疑问,您已经熟悉 Google 的机器人。 这些是“好机器人”。 他们为搜索引擎抓取您的网站并将其编入索引,您的 SEO 围绕着他们展开。
但是,每天都有更多的机器人访问您的 WordPress 网站。 很多这些机器人都不是恶意的,但它们会增加您网站的流量,从而给您的 CPU 带来不必要的压力。
您可以查阅此常见爬行机器人列表,以了解要阻止哪些机器人进入您的网站。 要阻止特定用户代理抓取您的网站,您需要使用以下格式在 robots.txt 文件中创建规则:
User-agent: BotName Disallow: /
“/”表示您已将它们从根目录以及您的整个站点中阻止。 如果你只想禁止来自某个目录的机器人,你可以写:
用户代理: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 一直超载,那么这几乎肯定是托管问题。