Nit*_*amk 5 sql-server azure-sql-database
我们使用的是 SQL Azure Premium P1,它带有 8GB 内存和 150 IOPS。几个小时以来,我们一直看到 SQL 查询超时(即使是相当简单的查询也需要时间)。
在 SQL Azure 的日志中,我们看到我们的物理读取 IOPS 在几分钟内从稳定的 5 IOPS 增加到大约 130,但我们在依赖 SQL Azure 的系统中的实际生产并没有增加。
在它跳到 130 IOPS 的那一刻,日志显示数据库内存使用量从非常稳定的 4.8GB 下降到 1GB 左右
我认为如果内存使用量下降,物理读取量增加是有道理的。
我查看了在服务器上执行的查询,但除了较慢的响应之外,没有发现任何异常。
我的问题是,即使有足够的内存可用,SQL Azure(或与此相关的 SQL 服务器)是否会从内存中删除内容并支持磁盘 IO,是否有任何原因。
事实证明,即使您支付预留资源费用并保证 8GB RAM,您也不能真正得到保证。而且它并不是真正为您保留的。在我们的案例中,事实证明另一个 Windows Azure 客户使用了过多的资源,我们的数据库得到了 1GB 而不是 8GB。