如何用New Relic找到WordPress的性能瓶颈

自学咖网努力为各位打造免费分享知识与教程网站

New Relic APM是一个强大的工具,可以深入理解WordPress网站的内部工作原理,从而找出导致客户网站性能问题的插件、主题模板文件、数据库查询、外部调用或编码错误。

然而,让新遗迹运行只是一个开始。如果你从来没有使用过New Relic APM(即使你有),你可能很难充分利用这个强大的工具。在本教程中,我们将向您展示如何使用New Relic APM来诊断和修复WordPress站点上的性能问题。

新遗迹APM概述

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹APM

那么什么是新遗迹APM呢?出于我们的目的,以下定义是合适的:

New Relic APM是一个Web应用程序,它提供了关于WordPress站点性能的详细信息。

你可以通过在PHP中添加扩展来安装New Relic。该扩展监听PHP处理的每个请求,然后将这些信息发送回New Relic仪表板。然后,New Relic将这些信息组织成一系列图表和图形,您可以使用这些图表和图形来诊断网站的性能问题。应该指出的是,HHVM不支持新遗迹。

让我们快速浏览一下New Relic的主要数据可视化。

摘要

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹APM概述

概述提供了网站整体性能的快速快照。您不会从这个屏幕中诊断出具体的问题,但是一个显示PHP、MySQL和外部调用如何协同工作的方便的编译可以为您指出正确的方向。

了解有关APM概述页面的更多信息。

事务

自学咖网努力为各位打造免费分享知识与教程网站

新遗物交易标签

交易标签是New Relic中最有用的标签。

学会喜欢事务选项卡,您将能够洞察缓慢的事务,以识别降低站点速度的数据库调用、外部资源或代码瓶颈。事务视图中特别有趣的是慢速事务列表。要查看该列表,请向下滚动到Transactions选项卡的底部,并查看页面的右下角。

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹交易跟踪

在这里,你会发现一个由新遗迹捕获的最慢的交易列表。我们现在不会在这一节花更多的时间,但稍后我们会解释如何使用这一节来诊断您的网站的问题。

了解更多关于新的遗迹APM交易页面。

WordPress挂钩

自学咖网努力为各位打造免费分享知识与教程网站

WordPress挂钩

WordPress钩子标签提供了所有PHP函数被WordPress操作钩子触发所消耗的时间的可视化。这些信息对有经验的开发人员非常有用,他们可以使用这些信息从重载的钩子开始向后工作,以识别钩子触发的函数。

WordPress插件和主题

自学咖网努力为各位打造免费分享知识与教程网站

WordPress插件和主题

WordPress插件和主题标签显示了插件和活动主题消耗了多少PHP处理时间。如果一个插件或者你的站点主题耗费了大量的时间,这个页面可以帮助你快速找到导致问题的插件或者主题。

注意:New Relic中的WordPress插件和主题标签是最容易被滥用的。

在调查网站性能问题时,很容易默认先检查这个选项卡,然后简单地停用最耗时的插件。然而,这样做忽略了在新遗迹的其他地方发现的有价值的信息。这类似于治标不治本。

由于配置错误,插件可能运行缓慢。例如,由于SMTP端口号不正确,成员资格管理插件运行缓慢。或者插件可能没有被正确卸载。这是你可以通过在“事务”标签中搜索缓慢的事务得到的信息类型,你永远不能通过简单地停用New Relic报告的最慢的插件来解决问题。

所以,请熟悉这个标签页,但不要排斥新舍利提供的其余信息。

数据库

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹MySQL概述

“数据库”选项卡中,您可以确定哪些数据库表和类型的查询占用了大部分时间。New Relic将这些信息与进行这些查询的交易相关联。您可以使用这些信息来识别可能需要优化的数据库表和给数据库带来额外负载的模板文件。

外部服务

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹外部服务

大多数WordPress网站依赖于许多外部服务:

插件、主题和核心更新由wordpress.org以及插件和主题开发者提供。

许多插件都集成了第三方API,比如WPMU DEV的Smush图像优化插件(上图中来自smushpro.wpmudev.org)。

聊天插件通常由外部服务支持。

许多网站都集成了社交媒体平台,以便在这些网络上共享内容时实现最佳的呈现和性能。

当这些外部服务中的任何一个及时停止响应时,它可能会使您的整个网站崩溃。

“外部服务”选项卡允许您快速检查哪些外部服务占用了您的大部分时间。然后,您可以使用这些信息来确定是速度问题(服务响应缓慢)还是数量问题(对外部资源的调用过多),并尝试解决问题。

误差分析

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹误差分析

错误标签报告在加载你的WordPress网站时遇到的PHP错误。按错误类别分组,以便您可以快速查看生成了多少不同类型的错误。错误还与导致它们的实际事务相关联。如果选择特定错误,还可以看到生成该错误的事务的完整堆栈跟踪。

将错误分析视为组织更好的PHP错误日志。当试图跟踪导致PHP错误的文件和导致这些错误的事务时,它可以证明是非常宝贵的。

调试加载缓慢的页面

当我们使用New Relic进行调试时,最常见的问题是某个特定的页面或进程需要很长时间才能加载。当这种情况发生时,New Relic APM中的transaction选项卡几乎肯定是第一个要去的地方。

诊断加载缓慢的页面需要遵循的过程非常简单:

复制慢速交易。

在新遗迹的慢速交易列表中找到交易。

查看事务摘要和跟踪详细信息,以确定性能下降的原因。

让我们看一个例子,以及如何使用New Relic来诊断问题。

步骤1:复制事务

让我们看一个例子。在这个例子中,每次加载一篇博客文章时,我们的客户端都会看到加载缓慢。所有其他页面正常加载,但个别文章需要几秒钟加载。

所以第一步是抄题。在这种情况下,这意味着多次访问一个博客帖子,以确保New Relic捕获到必要的日期。

第二步:找到慢的交易。

在多次复制慢事务后,转到New Relic并选择Transactions选项卡。然后向下滚动,直到在New Relic仪表板的右下角看到一个慢速交易列表。

自学咖网努力为各位打造免费分享知识与教程网站

新遗迹交易缓慢。

单击正在调试的事务以查看详细信息。

第3步:查看交易摘要和跟踪详情。

选择交易后,将显示交易摘要。

自学咖网努力为各位打造免费分享知识与教程网站

慢速交易汇总

通过摘要,您可以查看影响事务时间的组件的快照概述。在我们的示例事务中,对外部资源www.googleapis.com的调用负责一个5,000毫秒的事务,总共需要5,350毫秒才能完成。

尽管这是有用的信息,“跟踪详细信息”选项卡将提供我们需要确切了解发生了什么的详细信息。

自学咖网努力为各位打造免费分享知识与教程网站

慢速交易跟踪详细信息

Tracking Details选项卡提供了一个分层的逐步瀑布图,显示PHP在生成页面时处理的函数、数据库查询和外部调用。

在我们的示例事务中,跟踪细节显示对Google Analytics URL的调用阻止了该过程。如果我们从该请求开始向后操作,它将启动一个名为gapp_get_post_pageviews的PHP函数。谷歌快速搜索该交易显示,它是谷歌分析文章浏览量插件的一部分。这个插件安装在站点上,用于向粘性标题栏添加一个查看计数器。

New Relic只是允许我们将粘性标题栏中的查看计数器隔离为主要组件,导致相关网站上的个别博客帖子加载缓慢。现在,这个站点的所有者在试图解决单个博客帖子加载缓慢的问题时,确切地知道应该以哪个组件为目标。

整体修复缓慢

我们为客户解决的第二个最常见的问题是抱怨整个网站加载缓慢。当每个事务都花费大量时间加载时,可能会发生以下三种情况之一:

该网站缺少服务器资源。

或者是插件主题导致了问题。

数据库正在努力跟上查询速度。

站点缺少CPU或RAM,可能导致整体变慢,New Relic不会固定在任何单一资源上。所以,如果你确实看到整体缓慢,而New Relic显示网站的每个部分都有贡献,请检查服务器上的负载,看看是否是由于服务器资源短缺造成的。

如果你的站点可以访问大量的服务器资源,那么接下来你需要检查的地方包括WordPress插件和主题标签,外部服务标签和数据库标签。

下面是一个整体速度缓慢的示例,可以使用这些选项卡进行诊断。

插件导致的整体速度缓慢

当插件导致整体速度变慢时,症状会根据插件执行的活动而有所不同。然而,在很多情况下,你会发现一个缓慢的插件会影响WordPress网站的每个页面。对于您在下图中看到的数据的网站,在网站的每个首页上都可以观察到整体的缓慢。

以下是New Relic对网站插件性能的评价。

自学咖网努力为各位打造免费分享知识与教程网站

WordPress插件

您可以立即看到adinjector插件花费的时间是第二慢的插件的15倍。

当你看到这样的数据时,你可能会立刻认为这个插件编码不正确或者无效。虽然有时会这样,但也不总是这样。插件配置不正确,数据库慢或者外部资源响应慢,都可能导致插件消耗大量时间。

因此,当你看到一个响应缓慢的插件时,最好检查一下New Relic中的其他几个屏幕,以找到其他信息。在决定停用插件是最好还是唯一的方法之前,您应该检查事务、数据库和外部资源。

外部服务导致的整体速度缓慢

如果网站依靠调用外部服务来生成页面浏览量,而服务停止响应或者需要很长时间响应,结果可能是WordPress网站完全停止加载。

自学咖网努力为各位打造免费分享知识与教程网站

前5名外部服务

上图来自制作上述慢速插件截图的同一个网站。如您所见,有一个外部服务占用了等待外部服务的总时间太多。

这个案例说明了为什么在下结论之前有必要把信息核对一下。在这种情况下,被调用的服务是上一步中识别的插件的开发者。

这一信息给形势增添了一些微妙之处。据说问题不在插件代码。相反,似乎插件对开发者的网站进行了大量的调用,这些调用的组合会消耗大量的处理时间。

如果我们进一步观察这个站点缓慢的事务,我们可以看到这个外部调用似乎是在检查相关插件的许可状态,这表明这个特定插件的许可可能已经过期。

无论如何,我们现在可以通知这个网站的所有者,adinjector插件导致了性能下降,而性能下降是由于反复调用开发者的网站来检查插件的许可状态。

不堪重负的数据库导致整体速度缓慢。

数据库优化不当可能导致WordPress网站整体运行缓慢。我们一直推荐的一个优化是将您的数据库从MyISAM转换到InnoDB。在New Relic中,这种与数据库相关的缓慢可能出现在两个地方:

首先,你会在概览中看到很多MySQL的活动。

其次,您将在Database选项卡中看到一个或多个数据库表占用了大量时间。

在概览屏幕中,具有复杂数据库的站点可能如下所示:

自学咖网努力为各位打造免费分享知识与教程网站

网络交易耗时

要更好地处理导致问题的数据库表或查询,请转到“数据库”选项卡。

自学咖网努力为各位打造免费分享知识与教程网站

MySQL概述

数据库选项卡将指示哪些表和查询类型花费的时间最多。如果您选择列表中的一个条目,您可以看到更多的细节,包括一些示例查询。

自学咖网努力为各位打造免费分享知识与教程网站

慢速查询–WP _ options表

在这种情况下,数据指向wp_options表中自动加载的数据。果然,对wp_options表的快速分析证实,有近250MB的数据是从该表中自动加载的,这使得该站点成为数据库维护和优化的明显候选。查看我们关于如何优化wp_options表和自动加载数据的更深入的文章。

总结

一旦你知道如何使用它,New Relic可以成为一个有价值的工具来识别PHP在WordPress网站上的性能瓶颈。要充分利用New Relic,了解WordPress、每个标签页上报的信息以及所有信息之间的关系是必不可少的。

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 如何用New Relic找到WordPress的性能瓶颈