我在使用 Docker 容器托管在 Azure 应用服务上的 .NET 8 应用程序中遇到性能问题。当我仅将 Azure 应用服务(没有容器)与 Azure SQL 结合使用时,API 请求速度很快(2-3 秒)。但是,当将 Azure 应用服务与 Docker 容器和 Azure SQL 结合使用时,相同的请求大约需要 5-20 秒(在此范围内变化)。
更多信息:
问题:
到目前为止我尝试过的:
我已经处理这个问题好几个星期了。任何有关如何解决此性能问题的指导或见解将不胜感激。
您可以尝试从 docker 容器 ping sql server 以查看连接,也可以从 docker 容器外部尝试相同的操作。你让 Chace 检查一下 sql server 日志吗?尝试使用 https://learn.microsoft.com/en-us/azure/azure-monitor/app/transaction-search-and-diagnostics?tabs=transaction-search 应用程序中的端到端事务跟踪功能见解。这可以帮助您查看 API 请求的完整时间线(从传入请求到 SQL 查询执行),并确定延迟发生的位置。可以将数据库和Web应用程序设置在同一区域吗?
要确认问题是否与重试相关,您可以应用洞察日志,查看 SQL 依赖项的
dependencyDuration
、success
和 resultCode
字段。如果您看到这样的模式,其中第一次尝试的持续时间较长或失败 resultCode 指示超时或连接问题,然后是持续时间较短的成功尝试,这可能表示重试。您还可以查看他的帖子以获取更多故障排除帮助:https://stackoverflow.com/a/44957720/11147346