我正在使用 New Relic 监控我的一个网站,大约每两周我的 Apdex 就会下降一次。这似乎是 SQL Azure 的问题。
我知道的:
- 每分钟请求数与每个工作日特定时间的请求数相同。与昨天或上周同一时间相比,没有任何峰值。
- 性能从平均约 100 毫秒降至平均 12 秒。
- 前一周没有发生任何代码变化。
- 重新启动访问该数据库的 Azure 网站没有任何区别。
- 在前端网站上向上扩展没有什么区别。
- 似乎没有任何未关闭的连接或未处置的连接对象。
有趣的是,做似乎可以立即解决这个问题的方法是改变数据库的规模 -任何方向。将其从 S0 移动到 S1 可以修复此问题;将其从 S2 移动到 S1 可以修复此问题。显然,不可能“重新启动” Azure 数据库,但此过程似乎可以做一些事情。
我不确定如何进一步调查此事。有人有什么建议或想法吗?
答案1
我们多次遇到过完全相同的问题 - 通常每 3-6 周一次(2 年前)。Azure 支持一直说我们需要调整查询。但问题与您遇到的问题类似 - 没有任何变化(代码或负载),性能只会下降几个小时,然后就会恢复正常。经过几天的沮丧,并添加了越来越多的日志记录和监控后,我们发现 Azure 不想与我们分享:
如果主实例出现问题,他们会将其终止,然后辅助实例将成为主实例。这种切换是所有这一切的根源,Azure 支持人员犹豫不决地同意了这一点!!!尽管辅助实例是副本,但切换过程中存在一些问题,会使其变慢 - 几乎就像重新启动它一样。
实例可能因多种原因被终止:1. Azure SQL 是共享数据库。如果同一实例上的其他数据库之一出现故障(某些批处理作业负载过大),则会导致整个实例出现问题。2. 硬件故障 - 可能不像上述情况那么频繁。
答案2
我个人没有使用过任何命令,但我会尝试一下,看看 DB/Server 日志中发生了什么:
- 获取数据库事件日志:http://msdn.microsoft.com/en-us/library/dn505710.aspx
- 获取服务器事件日志:http://msdn.microsoft.com/en-us/library/dn505726.aspx
另外,尝试对你的应用程序进行一些调整,谁知道呢?这可能是问题的根源。
- Azure SQL 数据库性能指南:http://msdn.microsoft.com/en-us/library/azure/dn369873.aspx
最后,如果这个问题是由数据库服务器的异常行为引起的,我会直接联系微软寻求支持。
希望这可以帮助。
答案3
您可以运行我们的数据库基准测试。它们为 SQL 服务器实例的关键属性提供了详细的性能指标。
为了这个目的,我们免费提供 dbwatch。 http://dbwatch.com/azure