核心原因:perfmatte禁用了心跳、导致出现问题。
Heartbeat API 本身是轻量的,但它对性能的影响要看使用频率、站点访问量和后台任务类型。我给你拆开讲清楚:
1️⃣ Heartbeat 做了什么
WordPress Heartbeat API 主要通过 admin-ajax.php 发起 AJAX 请求,默认每 15–60 秒执行一次,功能包括:
• 自动保存文章草稿(编辑器里)
• 显示后台通知(如插件更新、用户在线状态)
• BuddyPress 依赖它做动态刷新和活动流轮询
所以它本质上是周期性 AJAX 请求。
2️⃣ 对性能的潜在影响
轻量站点:几乎无感。
大流量网站 / 后台用户多:影响就会明显,因为每个用户都在发送 Heartbeat 请求,可能导致:
场景 影响
高访问量前台页面 Heartbeat 每 15 秒发一次请求,累积可能造成服务器 CPU 占用
BuddyPress 活动流频繁刷新 AJAX 请求叠加,数据库压力增加
编辑器同时有多人在线 草稿保存请求增加并发量
3️⃣ 优化策略
• 仅在必要页面启用 Heartbeat:例如 BuddyPress 活动流、文章编辑页。
• 延长 Heartbeat 间隔:从默认 15 秒调到 30 秒或 60 秒,减少请求频率:
add_filter(‘heartbeat_settings’, function($settings){
$settings[‘interval’] = 30; // 秒
return $settings;
});
• 对高流量站点使用缓存/限制策略:Perfmatters 或 Heartbeat Control 可以针对非关键页面禁用 Heartbeat。
✅ 总结
• Heartbeat 本身不会消耗大量资源,但在高访问量或频繁轮询场景下,会增加数据库和 AJAX 请求压力。
• 最佳实践是只保留关键页面(如 BuddyPress 活动流、编辑器)启用,其他页面禁用。这样兼顾功能和性能。