WordPress 后台 TTFB 时间过长的问题
发现问题
偶然间发现 wp-admin 打开十分缓慢,打开 chrome 控制台一看,发现 TTFB(首个字节响应的时间)竟长达 3s ,属实不能忍。
问题排查
下载插件 Query Monitor ,发现有几个 HTTP 请求占用了大量的时间
原来是 wordpress 检查更新的 functions 导致的问题
解决方法
移除所有自动更新(包括WordPress核心、主题、插件)
// 关闭 自动更新
add_filter('automatic_updater_disabled', '__return_true');
// 关闭 更新检查 定时任务
remove_action('init', 'wp_schedule_update_checks');
// 移除 已有的版本检查 定时任务
wp_clear_scheduled_hook('wp_version_check');
// 移除 插件更新 定时任务
wp_clear_scheduled_hook('wp_update_plugins');
// 移除 主题更新 定时任务
wp_clear_scheduled_hook('wp_update_themes');
// 移除 已有的自动更新 定时任务
wp_clear_scheduled_hook('wp_maybe_auto_update');
// 移除 后台内核 更新检查
remove_action('admin_init', '_maybe_update_core');
// 移除 后台插件 更新检查
remove_action('load-plugins.php', 'wp_update_plugins');
remove_action('load-update.php', 'wp_update_plugins');
remove_action('load-update-core.php', 'wp_update_plugins');
remove_action('admin_init', '_maybe_update_plugins');
// 移除 后台主题 更新检查
remove_action('load-themes.php', 'wp_update_themes');
remove_action('load-update.php', 'wp_update_themes');
remove_action('load-update-core.php', 'wp_update_themes');
remove_action('admin_init', '_maybe_update_themes');
至此,TTFB 已大量减少
但是,0.7s 依然有点慢,还可以更快。
接下来,我们为 php 安装 opcache 和 redis 扩展
并且安装 Redis Object Cache 插件用于连接 redis
可以看到,TTFB 已经缩短到 200+ms