我有一个包含约 15k 帖子的博客,数据库大小为 14.4M。
该网站从前端运行得非常快,但后期编辑和列表后屏幕挂起 - 部分加载或根本不加载。
更糟糕的是,整个服务器在尝试后陷入困境......
检查流程管理器显示/public_html/wp-admin/edit.php
or /public_html/wp-admin/post.php
(分别是列表后和编辑后 - 是的,我知道它们似乎倒退了)正在消耗 99% 的 CPU。
我在第 3 层 Bluehost VPS 上遇到了这个问题,所以我升级到 Heart Internet Hybrid 250(12core,28gb ram)来尝试缓解这个问题 - 没有骰子:/
非常感谢任何帮助解决这个问题 - 告诉客户他们必须通过 phpMyAdmin 编辑页面不是一种选择:)
编辑:关于悬挂过程的说明
edit2:运行 MySQL 进程:
Id User Host db Command Time State Info
338 leech.. localhost leech.. Sleep 1959 NULL
426 tmhp_.. localhost tmhp_.. Sleep 581 NULL
433 root localhost NULL Sleep 132 NULL
441 root localhost NULL Query 0 NULL SHOW PROCESSLIST
流程示例:
Pid Owner Priority CPU % Memory % Command
29447 tmhp 0 99.8 0.6 /usr/bin/php /home/tmhp/public_html/wp-admin/edit.php
Edit3:这可能是相关的:在添加新页面或后期编辑页面上,标题加载并且是可编辑的,但内容编辑器加载到一半。此外,文本出现但为白色,仅在突出显示时可见...
Edit4:来自用户 tmhp 的 MySQL 进程在杀死导致问题的挂起(99%)进程后消失了......我想我们可能会在这里找到一些东西......
Edit5:此对话已移至wordpress.stackexchange.com
给定足够的时间(约 3-5 分钟),后期编辑页面将完全加载并且该过程将终止。但是,发布列表页面似乎不会发生这种情况。
此外,我已将后期编辑页面上的问题缩小到页面属性元框。
作为短期补救措施,我创建了一个插件,它执行以下操作:
//Remove some features of pages so editing is faster
if (is_admin()) :
function my_remove_meta_boxes() {
remove_meta_box('pageparentdiv', 'page', 'side');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;
function remove_page_attribute_support() {
remove_post_type_support('page','page-attributes');
}
add_action( 'init', 'remove_page_attribute_support' );
// Remove the Posts and Pages menus from the admin screen
function custom_admincss() {
echo '<style type="text/css">
#menu-pages{display:none !important}
#menu-posts{display:none !important}
</style>';
}
add_action('admin_head', 'custom_admincss');