Azure SQL - DTU CPU使用率不平衡

4
我一直在分析在Azure SQL上运行的一个数据库,它的性能非常糟糕。它在高级版中有1750个可用的DTU,有时仍然可以达到DTU的最大值。
我已经通过存储过程识别出了各种查询和可怕的数据访问模式,从而减轻了负载。但是,在下面的图像中,DTU和CPU使用率之间仍存在巨大的差异,我在Azure SQL中看到的任何其他“查询性能洞察”的图像都显示出DTU线与CPU使用率基本对齐。 DTU(红色)每个查询的CPU使用情况 查看位于其上方的C#应用程序,对于使用该应用程序的每个用户,它都会创建一个SQL用户,并在连接字符串中使用该用户来访问DB。这意味着未使用连接池,导致在SQL Azure DB上拥有大量活动用户/会话。这可能是为什么DTU使用率如此之高的唯一原因吗?
或者我可能错过了在Azure门户中不可见的IO相关内容吗?
谢谢 尼尔
编辑:添加会话和工作人员图像!

输入图像描述

基于这一点,我现在不太确定...会话百分比是什么?就像它是10%,但是10%是什么?允许的最大值吗?

编辑2:添加更多指标:

一周: 输入图像描述

当负载高时为2-3小时: 输入图像描述

我认为紫色尖峰是重新索引,所以可以忽略它!


查看 Query Store 中占用最多 CPU 时间的内容。 - leppie
是的,我已经做到了,但正如您从我附加的图片中所看到的那样,前20个查询的CPU使用率仅使用约5-10%,您会发现DTU使用率始终比CPU高约30%,有时它会飙升到接近100%的DTU使用率!其他数据库的DTU和CPU通常会像这样跟踪https://acom.azurecomcdn.net/80C57D/cdn/mediahandler/docarticles/dpsmedia-prod/azure.microsoft.com/en-us/documentation/articles/sql-database-query-performance/20160817102412/performance.png - user1957687
那只是我给你的一个例子,展示了DTU如何紧密地映射CPU使用情况...请查看我的原始帖子,其中包含实际性能图表的截图。 - user1957687
有人吗? - user1957687
现在,仅看峰值的2-3小时期间,在折线图上紫色部分飙升到80%以上时,底部百分比不一致。图表显示您的LogIO使用量超过80%,但详细信息显示为1%。我认为您可能需要更近距离地查看那个早上8点左右的时间段,看看是否受到Log IO限制。此外,除非在SQL PaaS中有很好的原因,否则您需要重新考虑重新索引,因为在大多数情况下并不必要,并且大多数情况下只会造成DTUs成本。 - Shannon Lowder
显示剩余4条评论
1个回答

1
尝试理解DTU与资源之间的关系对我也是一个绊脚石。点击您的资源利用率图表,然后单击编辑default resource chart

然后您会得到一个滑块,其中包含许多可以监视的资源。选择Sessions和Workers百分比。很可能其中一个是您的问题。如果不是,您可以添加:CPU,Data IO,Log IO和/或In-memory OLTP百分比。点击确定。

Resource options

现在,你应该在你的查询中找到真正的成本或成本。了解查询如何消耗不同的资源可以帮助您解决性能问题,例如这些问题。当进行大型插入时,我学到了这一点,我正在最大化我的日志IO,而其他所有内容都是<5%利用率。尝试一下,如果您关于连接池的正确性,不幸的是,这意味着需要重新设计应用程序。至少,使用此功能将为您提供比仅查看DTU百分比更多的见解!

我已经将那张图片添加到我的原始答案中,你觉得这样有任何不正确的地方吗?我猜测工人们可能稍微有些高。 - user1957687
你的工作进程和会话数并不像我原本预期的那样高,考虑再收集一张图像,包含其他峰值时段的百分比(CPU、数据IO和日志IO)。其中一个应该接近于上一张图像中的93.23%。一旦找到最高的资源使用率,我们就有办法进一步排除故障! - Shannon Lowder
好的,由于您不是在传统的SQL实例中,所以不需要重新索引。您不能以完全相同的方式考虑磁盘访问。查询是否明显变慢,这就是为什么要重建索引的原因吗?在重建索引之前,您是否检查了碎片水平,以查看重新组织是否是更好的选项? - Shannon Lowder
另外,您能否捕获一张关于重新索引操作的图表,可能在峰值的前后1小时内,但包括所有百分比(DTU、CPU、两个IO、会话和工作进程)?一旦我们深入研究,我认为我们可以更好地了解情况。当您查看2-3小时而不是2-3天时,百分比可能会略有变化。相信我,这很令人困惑。有时候我会将dmv导出到Excel中以获得更好的视角。 - Shannon Lowder
谢谢你的输入,我已经上传了一个包含所有你要求的百分比的完整一周的数据,还有一个为3小时的数据。再次感谢! - user1957687
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接