我正在管理WordPress server 2Core CPU 8Gb Ram,托管在Openlitespeed+MariaDB 11.4和PHP 7.4上。已安装Redis和OPache。在WordPress网站上,Redis Object Cache 和Litespeed LSCache 是否已安装并启用插件。
内存限制:512MB,最大执行时间:120
该网站有超过140k篇帖子,浏览网站页面和内容是一种流畅的体验。
但问题是,每当编辑器登录创建帖子时,CPU使用率就会激增到90%或更多。和wp管理员/新发布。php变得像蜗牛一样慢,有时我需要几分钟才能准备好,有时会崩溃,发布按钮会变灰。当他们打开多个wp admin/post new实例时,情况会变得更糟。php。
我尝试禁用所有插件,在禁用插件的情况下更改主题,但无法修复。
如果禁用Classic Editor,使用默认的Gutenberg编辑器,效果只会好一点。
安装时的测试和发现Query Monitor 我发现,在其他选项卡或wp-admin/post-new.php 它最多可以读取100秒,有些情况下会使站点停止响应。
SELECT DISTINCT meta_key
FROM wp_postmeta
WHERE meta_key NOT BETWEEN \'_\'
AND \'_z\'
HAVING meta_key NOT LIKE \'\\\\_%\'
ORDER BY meta_key LIMIT 30
我认为在VPS和Redis缓存对象上安装Redis会提供更好的性能。这可能是真的,因为除了运行上述查询的post editor页面之外,网站的其他部分都在快速加载。
目前,我已经禁用了经典编辑器,但用户(编辑器)更喜欢它。请问我需要做些什么来优化网站?
最合适的回答,由SO网友:Good Muyis 整理而成
经过一夜的网络搜索,我发现这个问题很常见,而我在上面发布的相同查询就是罪魁祸首。根据WordPress Post Editor Performance, 这是由于Slow meta_form() database query
他提供的最安全的解决方案是函数的一段代码。php。我做到了,我经历了很多变化。请参见下面的代码:
/**
* Remove Ancient Custom Fields metabox from post editor
* because it uses a very slow query meta_key sort query
* so on sites with large postmeta tables it is super slow
* and is rarely useful anymore on any site
*/
function wpse391530_remove_post_custom_fields_metabox() {
foreach ( get_post_types( \'\', \'names\' ) as $post_type ) {
remove_meta_box( \'postcustom\' , $post_type , \'normal\' );
}
}
add_action( \'admin_menu\' , \'wpse391530_remove_post_custom_fields_metabox\' );
您可以在上面发布的文章链接上阅读有关解决方案的更多信息