4

如何诊断 Azure 中的性能(响应时间)瓶颈?

我在 Azure 上有一个 .NET Core 网站,其中包含一个 Web 应用服务和一个 SQL 数据库。

我已经设置了负载测试并通过云部署它来访问网站。负载测试代理的配置属性是

  • 4核
  • 从 10 个同时用户开始,每 20 秒 + 10 个,最多 150 个用户
  • 请求之间的 5 秒思考时间

Web app资源分配如下

  • 2个实例
  • 4 核,7GB RAM(S3 标准)

此图显示负载测试期间的硬件利用率(显示了 2 个测试,大约下午 1 点和下午 1:30)

在此处输入图像描述

似乎是合理的,除了我认为我的响应时间太慢,考虑到硬件根本没有压力。例如,在 10 个用户时,我的响应时间从 20 毫秒开始,但在 150 个用户(测试结束时)时,我看到 5 秒的响应时间。

在此处输入图像描述

对于测试的最后一部分,我每秒的请求数约为 50。

在此处输入图像描述

100DTU 的数据库性能似乎不是一个因素: 在此处输入图像描述

我还能做些什么来诊断响应时间缓慢?如果 Web 服务器硬件没有固定,数据库甚至没有打喷嚏,我还可以打开 Azure 的哪些其他旋钮?

4

2 回答 2

3

响应时间过长的瓶颈可能由多种原因引起,例如带宽限制、源代码限制、糟糕的应用程序设计、紧耦合组件的依赖性等。有关如何解决 Web 应用程序性能缓慢问题的更多信息,请参阅文档。有一些是从文档中截取的。

为您的 Web 应用启用诊断日志记录。

WebApp 提供诊断功能,用于记录来自 Web 服务器和 Web 应用程序的信息。我们可以为 Web 服务器诊断启用详细错误日志记录、失败请求跟踪、Web 服务器日志记录

使用 Kudu 调试控制台 (https://.scm.azurewebsites.net/) Kudu 为您的应用程序、日志流、诊断转储提供环境设置

我们还可以使用 Azure Application Insights 来监控我们应用程序的使用情况和性能,然后我们可以获得有关请求的更多详细信息、更详细的异常信息、响应时间等。如果我们能得到更多关于应用异常、请求失败、服务器日志和应用日志的详细信息,将更有利于我们的诊断。

在此处输入图像描述

还有一些关于如何诊断Web App以及如何使用ApplicationInsights的相关文章:

在 Azure 应用服务中为 Web 应用启用诊断日志记录

监控 Web 应用程序的性能

使用 Application Insights 诊断 Web 应用程序中的异常

在 Application Insights 中使用搜索

于 2016-12-08T07:39:28.430 回答
1

尝试使用新的 relic 扩展 它提供了对响应时间的深入了解,免费帐户提供了更多信息

您还可以在 Web 应用程序上启用应用程序洞察力。它将为您提供有关响应时间和其他详细信息的详细信息

于 2016-12-07T21:47:51.157 回答