Wordpress 发布时速度很慢

Wordpress 发布时速度很慢

我有一个 Wordpress 网站,上面有超过 219k 条帖子,每次我发布内容时,我的 CPU/MySQL 使用率就会达到 100%。

我真的不知道为什么,因为我的整个网站全天的使用率都保持在 6%,并且只有在发布新帖子时才会出现峰值。

是的,我使用 w3 super cache,但问题出在 wp-admin 本身!我使用 mysqltuner 来优化 MySQL...但是,就像我已经说过的,问题只发生在发布新帖子时。

我使用亚马逊 AWS 上的两个云来托管博客。MySQL 云是m1.中等并且 Web 服务器是m1.xlarge

这是我的 CPU 的图形,如你所见,我在两个云上同时出现了峰值……这些峰值恰好发生在我发布新帖子的时候。绿线是 MySQL蓝线是 Web 服务器

您可以在这里看到如下图表:https://i.stack.imgur.com/PReQP.png

如果没有人能帮我解决这种情况,拜托,我想要一些东西来“检查”代码...Wordpress 的整个结构太丑陋了,我无法理解新帖子是如何工作的。我想调试查询/函数或类似的东西。

谢谢!

答案1

我在 Medium 实例中遇到了类似的问题,但最终发现是我使用的主题出了问题。将主题更改为默认 WP 主题,看看问题是否仍然存在。主题的 function.php 文件中有一个函数无法正常工作。删除该函数解决了我的发布问题。

如果主题或者插件导致了问题,那么思路就会缩小。

示例:我必须从正在使用的主题中删除的功能是

// updates post id in sequential order by post date used for post page
function updateNumbers() {

global $wpdb;
$querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts 
             WHERE $wpdb->posts.post_status = 'publish' 
             AND $wpdb->posts.post_type = 'post' 
             ORDER BY $wpdb->posts.post_date ASC";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
    $counts++;
    add_post_meta($post->ID, 'incr_number', $counts, true);
    update_post_meta($post->ID, 'incr_number', $counts);
endforeach;
endif; 
}  

在多站点上更新到 4.2.4 后,导致问题的一个插件是“安装程序”。后端非常慢。删除此插件解决了此问题。

答案2

假设您已经很好地使用了 mysqltuner,那么问题很可能出在数据存储硬件上。

假设您的 MySQL 实例正在将数据保存到 EBS 卷上。您至少面临两个问题:

  • EBS 速度慢
  • 中型实例的 IO 性能相对于大型实例相对较慢。EBS 需要良好的 IO 性能。

尝试测量存储 MySQL 数据的 EBS 卷的文件系统性能,使用类似几周前我这样做的时候,安装到小型实例上的 EBS 卷的性能约为一半像。。一样好单个硬盘在我的笔记本电脑

您可以通过将多个 EBS 卷划分为软件 RAID 配置来提高 EBS 性能

http://www.mysqlperformanceblog.com/2009/08/06/ec2ebs-single-and-raid-volumes-io-bencmark/

http://dodizzle.com/setting-up-software-raid-zero-over-8-volumes

将 MySQL 实例迁移到 Large 或更高版本可为您提供更多内存以及更好的 IO 性能。我会先尝试创建软件 RAID,然后考虑迁移到更大的实例。请注意,如果您调整好数据层,您实际上可以将 Wordpress 从 xlarge 实例降级到大型实例。

相关内容