![为什么我的 Azure VM 暂时无法连接到 AZure 托管实例?](https://linux22.com/image/785085/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20Azure%20VM%20%E6%9A%82%E6%97%B6%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%88%B0%20AZure%20%E6%89%98%E7%AE%A1%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
我有一堆运行 Windows Server 2019 的负载平衡 Azure VM,它们运行 IIS,并在其上运行 ASP.NET MVC/Web API 2 应用程序。它们与 SQL Server 托管实例中的数据库进行通信。
虚拟机和托管实例位于具有相同虚拟网络的不同子网中,并且大多数情况下,一切都运行良好。
但是,每天有几次,似乎是随机的,所有 AS.NET 应用程序在尝试连接数据库或在已打开的连接上执行操作时都会开始记录超时错误。每一个都是。
几分钟后,一切都开始正常工作,这很酷,但停电时间对我的客户来说非常麻烦,我们刚刚经历了一次停电,持续了整整 45 分钟。
我不知道发生了什么,甚至不知道如何进行故障排除。
答案1
与使用 Azure SQL 托管实例并发生超时的组织合作,我发现大多数时候问题是需要查询调整或索引调整。
有时您会看到某些查询超时,但一分钟后您执行它们时,结果却很好。避免对大表进行聚集索引扫描。将查询调优重点放在使用内存和 CPU 的热门查询上。
确保该实例的最后 7 个错误日志中没有出现“内存压力”错误。