微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure SQL 无服务器数据库 CPU 不断计费

如何解决Azure SQL 无服务器数据库 CPU 不断计费

所以我在设置新的 Azure sql 无服务器数据库时遇到了一些问题。

enter image description here

我不断收到高额的 cpu 计费使用费,这需要花费一大笔钱,我什至不得不在新区域中使用新名称创建一个数据库,使用新用户名和密码以及锁定防火墙。备份以及任何自动功能都被禁用。但是一旦部署完成,我就开始收到账单。

enter image description here

我已经运行了 sql profiler,但没有任何东西触及数据库

有没有人遇到过这个问题,或者知道从哪里开始寻找?

解决方法

documentation 对自动暂停开始所需的条件相当清楚:

如果以下所有条件都为真,则触发自动暂停 在自动暂停延迟期间:

在用户池中运行的用户工作负载的会话数 = 0 CPU = 0

它还列出了一些可能会阻止自动暂停的条件 - 您应该仔细检查您没有启用以下任何一项:

  • 异地复制(活动异地复制和自动故障转移组)。
  • 长期备份保留 (LTR)。
  • 用于 SQL 数据同步的同步数据库。与同步数据库不同,集线器和成员数据库支持自动暂停。
  • DNS 别名
  • 弹性作业中使用的作业数据库 (预览)。

如果您发现数据库仍未暂停,有多种方法可以追踪活动连接:

  1. Azure 门户 - 通过该门户,您只需点击智能性能中心和查询性能洞察刀片即可深入了解活动:

Query Performance Insight

点击查询 ID(在我图片中的红色框中)以关注单个查询。

  1. 连接到数据库并运行 sp_who2sp_whoIsActive(现在托管在 github 上)以列出活动会话。如果您发现活动会话,您可以断开它们(例如活动的 SQL Server Management Studio (SSMS) 连接或 Azure Data Studio (ADS))或 kill 它们,只要您知道自己在做什么并了解kill 命令的含义。
  2. 我发现的一个稍微令人不快的解决方法 (here) 是将层切换为标准层,然后再将其切换回无服务器。我希望这只会杀死所有活动连接以切换层,而不会找到它对我有用的根本原因。

我建议您尝试使用上述方法 1 或 2 诊断活动连接并报告。

,

我们无法停止/启动 SQL Azure 服务器。 SQL Azure 数据库驻留在共享主机上。该服务器上还有其他租户。您可以访问数据库,但不能访问相应的托管服务器。确实没有办法暂停/停止 Azure SQL 数据库的计费。

或者:

  1. 我们可以减小 Azure SQL 数据库的大小,从而降低下一服务小时的成本。
  2. 如果你真的不想为数据库付费,你可以将数据库备份到 blob 存储,删除数据库,然后在需要时恢复它。您可以参考此documentation
,

我不确定问题是关于自动暂停还是只是从一开始就收取高额费用。

我有同样的问题,即使没有运行任何东西(似乎,根据 sp_whoisactive),我也经常为几乎最大的 vCore 付费...

我发现有关原因的一个有用的指针是: https://docs.microsoft.com/en-us/azure/azure-sql/database/serverless-tier-overview#billing 其中

计费的计算量由以下指标公开:

  • 指标:app_cpu_billed(vCore 秒)
  • 定义:max(最小 vCore、使用的 vCore、最小内存 GB * 1/3、使用的内存 GB * 1/3)
  • 报告频率:每分钟

该数量每秒计算一次,并在 1 分钟内汇总。

杀手似乎是“使用的内存GB”。如果您被扩展为 8 个 vCore 和 24GB 最大内存,那么似乎 SQL Server 会在您执行任何操作时立即获取所有内存并且永不放手……所以即使您的 CPU 运行 10%,您也拥有所有内存内存并一直为所有“vCore”收费。

我根本就不是 DBA,但我听说这是 SQL Server 的正常行为,所以要么我错过了一些明显的东西,要么感觉像是抄袭。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。