对于大多数虚拟主机用户而言,CPU 使用率存在限制,因此始终建议对网站进行优化。多数用户使用的是共享服务器,当 CPU 使用率过高时,几乎所有虚拟主机服务商都会发送通知。
将 CPU 使用率控制在较低水平至关重要。WordPress 在 3.6 版本中引入了 Heartbeat API,该 API 负责管理多项功能。
若 API 的 “脉冲” 次数增加,服务器分配给网站的 CPU 调用次数也会随之增多,最终可能导致网站宕机。
想必您不愿看到这种情况发生。很多时候,若您收到通知称网站向wp-admin/admin-ajax.php
发送了大量 AJAX 请求,这就意味着您需要对 WordPress Heartbeat API 进行管控了。
WordPress Heartbeat API 的管理范围
您可能会疑惑,为何大家都建议限制该 API,它究竟负责管理哪些功能?
- 监控多作者网站上所有作者的活动状态
- 在创建或更新文章时发送 “脉冲”
- 在文章自动保存时发送 “脉冲”
- 实时同步电子商务网站的销售数据
- 在 WordPress 仪表盘上显示通知
您或许有过这样的体验:当其他作者正在编辑某篇文章时,您能看到其编辑状态,这一功能正是由 Heartbeat API 实现的。
假设您的网站有 5 位作者,且他们负责不同类别的内容发布,那么在此情况下,API 发送的 “脉冲”(即 POST 请求)次数会大幅增加,而这会直接影响 CPU 的使用率。
就在几个月前,我的虚拟主机服务商告知我,当前的主机方案已无法支撑我的网站运行,建议我升级到云主机。
要知道,从每月 15 美元的主机方案升级到每月 50 美元的方案并非易事。当时主机客服表示,网站的每日 CPU 调用次数已超出限制,无法继续维持现有服务。
造成这一问题的根源,正是 WordPress Heartbeat API 发送的 “脉冲” 次数过多。我通过搜索找到了对应的解决办法。
您需要了解的是,您完全可以控制 Heartbeat API 的运行方式。如果您是网站的唯一作者,且无需查看其他作者的活动状态,甚至可以直接停用该 API。
如何监控 Heartbeat API
目前尚无直接方法可查看 Heartbeat API 发送 “脉冲” 的精确次数,但您可以通过虚拟主机的 cPanel 查看网站的历史统计数据。
您可以借助主机服务商提供的内置工具完成此操作。若您不确定是否有此类工具,可直接咨询服务商,然后查看 “访问量最高的 25 个页面” 统计数据。
如果您发现/wp-admin/admin-ajax.php
位列榜首,那就说明问题出在 WordPress Heartbeat API 上 —— 它已耗尽了大量 CPU 资源。
这会阻碍其他操作的正常执行,进而导致网站宕机。要解决此问题,有两种可行方案:要么限制 API 的 “脉冲” 次数,要么将其完全停用。这两种操作既可以通过插件实现,也可以不借助插件完成。考虑到多数 WordPress 用户并非技术人员,他们更需要了解适用的插件方案。
使用插件管理 WordPress Heartbeat API
Jeff Matson 开发了一款插件,只需点击几下,就能帮助您管理 WordPress Heartbeat API 的 “脉冲” 频率。
首先安装并激活 “Heartbeat Control” 插件(假设您已掌握 WordPress 插件的安装方法)。激活后,进入 “设置 >>Heartbeat Control” 页面。
在该页面中,您会看到三个用于覆盖 API 默认设置的选项。
从下拉菜单中,您可以根据自身需求选择 API 的作用范围。如果您是网站的唯一作者,可选择在所有位置停用该 API。
默认情况下,文章编辑页面的 API “脉冲” 频率设置为 15 秒,您需要将其调整为大于 15 秒的值。设置的数值越大,Heartbeat API 发送 POST 请求的间隔就越长,从而为 CPU 腾出更多时间来处理其他请求。
正如前文所述,多数专家建议直接停用该 API。仅仅因为一个 API 而花费数百美元升级主机方案,显然得不偿失。
管理共享主机确实颇具挑战性,许多用户常会因此产生额外开销。即便是一个仅有 500 篇文章的网站,也可能被迫迁移到虚拟专用服务器(VPS)或云主机,只为获得更多的每日 CPU 调用额度。
使用代码限制 WordPress Heartbeat API
在 WordPress 主题文件中,functions.php
是最为重要的文件之一。您可以在该文件中添加一段简单的代码,以此实现对 Heartbeat API 的限制,其效果与使用插件一致。
不过,很多人更倾向于通过代码解决这类小问题,而非每次都安装新插件。毕竟,没必要为了一点小事就额外安装插件。
因此,直接复制粘贴以下代码是更优选择。假设您已掌握functions.php
文件的编辑方法;若您尚不了解,可按照以下步骤操作:
- 打开 cPanel,找到并点击 “文件管理器”
- 定位到
wp-content
文件夹并打开 - 进入
themes
文件夹 - 选择您当前使用的主题文件夹,在其中找到
functions.php
文件
打开functions.php
文件进行编辑,粘贴以下代码:
add_action( ‘init’, ‘stop_heartbeat’, 1 );
function stop_heartbeat() {
wp_deregister_script(‘heartbeat’);
}
保存文件后,操作即完成。
部分用户在打开文件管理器后可能会感到困惑。若您在同一台主机上运行多个网站,需确认目标网站的数据存储位置。
想必您听说过public_html
文件夹 —— 您的网站文件就位于该文件夹中,若您使用的是宝塔管理面板,可以网站列表直接进入网站目录。
若您能访问网站的后台管理界面,需先通过缓存插件清除网站缓存,然后检查网站运行状态。
若网站一切正常,那么恭喜您,您已成功完成对 WordPress Heartbeat API 的限制配置。
希望您已理解网站优化的重要性。许多用户抱怨网站加载速度慢、CPU 使用率过高,而密切关注 Heartbeat API 的运行状态是解决此类问题的关键。若您今后遇到类似问题,不妨尝试限制或停用该 API。
祝您使用 WordPress 愉快,拥有稳定的服务器运行时间。