Azure 长响应时间瓶颈?

Posted

技术标签:

【中文标题】Azure 长响应时间瓶颈?【英文标题】:Azure Long Response Time bottleneck? 【发布时间】:2017-04-22 22:36:23 【问题描述】:

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

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

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

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

Web应用资源分配如下

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

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

看起来很合理,但在我看来,我的响应时间太慢了,因为硬件根本没有受到压力。例如,在 10 个用户时,我的响应时间从 20 毫秒开始,但在 150 个用户(测试结束时)时,我看到 5 秒的响应时间。

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

100DTU 的数据库性能似乎不是一个因素:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

Enable diagnostics logging for web apps in Azure App Service

Monitor performance in web applications

Diagnose exceptions in your web apps with Application Insights

Using Search in Application Insights

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于Azure 长响应时间瓶颈?的主要内容,如果未能解决你的问题,请参考以下文章

性能测试案例:数据库cpu高导致响应时间长

接口响应时间从2s优化到 200ms以内第一季

接口响应时间从2s优化到 200ms以内第一季

接口响应时间从2s优化到 200ms以内第二季第七集

接口响应时间从2s优化到 200ms以内第二季第七集

Spring Restful API - 有时,响应时间太长