性能缓慢 Azure“Web 应用”+ Azure SQL DB

Posted

技术标签:

【中文标题】性能缓慢 Azure“Web 应用”+ Azure SQL DB【英文标题】:Slow performance Azure 'Web App' + Azure SQL DB 【发布时间】:2017-12-10 03:24:03 【问题描述】:

我已将现有的 asp.net web-api 从 Azure VM(本地安装了 IIS 和 MSSQL)移至 Azure Web 应用程序和 Azure SQL 数据库(均为西欧)。我注意到对于相同的工作负载,两者之间的处理持续时间显着增加。在 VM 上需要 10-15 毫秒的任务,在托管服务环境中至少需要 150 毫秒。内部处理,不包括与 vm 或 Web 应用程序之间的网络延迟。两者都具有空数据库和相同的代码库。具有相同索引的相同数据库架构。

VM 是一台简单的 2 核/7GB SSD 机器。但是,即使我将我的网络应用程序设置为高级 4 核/7GB 并将我的数据库设置为高级 250DTU,性能也根本没有提高。事实上,在基本的 2 核 Web 应用程序和 10DTU 数据库上也是如此。所以瓶颈必须在其他地方。

我将如何找出导致处理缓慢的原因? Web 应用和数据库不显示性能警报,也不建议扩大规模。

【问题讨论】:

当您说本地时,您是指本地计算机还是同一网络上的本地计算机? 关于此问题的任何更新。你设法解决了这个问题吗? 【参考方案1】:

针对每个会话/工作负载运行以下查询,以了解在这些工作负载期间发生的等待类型:

--您的查询在这里

go

select * 
from sys.dm_exec_session_wait_stats
where session_id = @@spid
order by wait_time_ms desc

最后一个 SELECT 语句将为您提供当前会话的所有等待。

您还可以启用查询存储。

http://www.sqlcoffee.com/Azure_0010.htm

并运行以下查询以了解是什么让查询在执行期间等待

select  wait_category_desc, sum(total_query_wait_time_ms) as [sum ms], count(*) as [interval cnt],  avg(avg_query_wait_time_ms) as [avg ms], sum(total_query_wait_time_ms / avg_query_wait_time_ms) as [wait cnt]
from sys.query_store_wait_stats
group by wait_category_desc
order by [sum ms] desc

下面的文章会告诉你每个等待类别的含义。

https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-query-store-wait-stats-transact-sql

希望这会有所帮助。

【讨论】:

【参考方案2】:

我今天遇到了同样的问题:Azure Web AppAzure DB 导致与数据库交互的任何东西的性能都很慢。

但是,当我在我的电脑上本地运行应用程序时,体验非常快。因此,我检查了我的应用服务和位置。我使用的是美国的 S1 服务和澳大利亚的数据库。

•因此我升级到 Premium S2

•将我的 Web 应用和数据库定位在同一区域。

这两个变化带来了巨大的性能提升。


如果我是另一个问题的相同答案的原始发帖人,并且答案是否适用并且是正确的,我不确定为什么让我以前的答案重复是一个问题。仅仅因为改变它是没有意义的。请先发表评论并允许我在完全删除之前进行编辑...

【讨论】:

以上是关于性能缓慢 Azure“Web 应用”+ Azure SQL DB的主要内容,如果未能解决你的问题,请参考以下文章

Azure Web 应用程序的负载缓慢且不热(30 秒以上的负载)

通过 Direct Query 连接到 Azure 专用 SQL 池的 Power BI 报表性能缓慢

发布或重新启动后 Azure Web 应用程序非常慢

为啥在尝试删除违反外键约束的记录时,Azure Web 应用程序的性能会受到如此大的影响?

GEN 0 垃圾爬上 Azure 这正常吗?

在 Azure 中使用 Visual Studio Online 加载测试性能计数器