【发布时间】:2017-12-06 01:21:25
【问题描述】:
我们在 Azure 上运行的 C# Web 应用使用 System.Diagnostics.Trace 编写用于调试/故障排除的跟踪语句。一旦我们为这些日志启用 blob 存储(使用 Azure 门户中的“应用程序日志记录 (blob)”选项),我们的应用程序的响应时间就会大大减慢。如果我关闭此选项,网络应用程序会再次加速(尽管显然我们不再在 blob 存储中获取日志)。
有人知道这是否是预期的吗?我们当然会为每个请求(每个请求大约 100 个)编写大量跟踪语句,但我认为这对于 Web 应用程序来说并不罕见。有什么方法可以诊断为什么为日志启用 blob 存储会显着减慢这些跟踪语句的执行速度?例如,在 blob 存储中写入跟踪语句是否与正在更新的日志同步?
【问题讨论】:
-
您的 Web 应用程序是使用 VM 还是应用服务托管的,无论哪种情况,Web 应用程序和存储帐户都属于同一资源组和位置吗?
-
@Baskar 资源组与性能或服务位置无关。
-
这是一个应用服务。应用服务和存储帐户都在美国西部 2。地理位置会有多大的不同?我想我会认为将日志推送到 blob 存储与实际调用 Trace 是异步的(你不想让每个 trace 调用都进行网络调用?尽管这可以解释为什么它运行如此缓慢?我不不过,看看日志记录如何在这样的模型上实际工作)
-
@DavidMakogon 我想确保按照以下文档考虑网络延迟。客户端网络功能部分。 docs.microsoft.com/en-us/azure/storage/common/…
-
@akaioi 我能够找到一个解决方法/解决方案,我只是将它作为我的问题的答案发布在这里。让我知道这是否有帮助。
标签: azure azure-blob-storage azure-diagnostics