【发布时间】:2019-10-09 12:36:31
【问题描述】:
我刚刚启动了一个 Azure SQL 数据库,但 DTU 和 CPU 使用率表现异常。数据库每分钟只接收大约 30 个请求,并且 CPU/DTU 将在几个小时内极低,然后跃升至 100% 并保持在那里(触发此的请求数量没有增加)。当我单击查看热门查询时,它们都没有超过 1% 的 cpu 使用率。我开始了 5 个 DTU 计划,昨天升级到 20 个 DTU,并且正在发生相同的行为。知道还有什么可能导致 DTU/CPU 最大化吗?见下图:
https://i.imgur.com/LdbYTPw.png
https://i.imgur.com/jlus3FM.png
提前感谢您的任何建议!
乔
编辑:我越来越近了,我在错误日志中发现了这些重复的条目。 (每秒钟大约 8 - 10 个)
“传入的请求参数过多,服务器最多支持2100个参数,减少参数数量,重新发送请求。”
问题是,查询数据库的应用服务只执行简单的选择、更新和插入……其中没有使用任何复杂的 WHERE IN 语句。此外,每个查询都包含在一个 try/catch 块中,我从未见过这样的异常。
这些大型查询可能来自哪里?
【问题讨论】:
-
听起来你发现了错误。我的猜测是你的应用服务正在做一些你想象之外的事情。 Try/catch 块很棒,但是你对 catch 中的异常做了什么?如果你吞下它们,那对你没有好处。我建议将 Application Insights(在一定数据量下免费)添加到您的 Web 应用程序中,以了解正在发生的事情。