【问题标题】:2 min delays on downloading Azure blobs下载 Azure Blob 延迟 2 分钟
【发布时间】:2017-09-10 15:24:20
【问题描述】:

我正在用 C# 开发一个应用程序并使用 Azure。我注意到,当我尝试加载大量 blob 时,一些请求需要大约 2 分钟。通常下载时间为 1-15 秒。 奇怪的是,请求可能需要 1-15 秒或 2 分钟(绝不是 30 秒或 1 分钟等)。对我来说,Azure 似乎有某种限制或重试机制,但我不确定。

是什么导致了 2 分钟的延迟? 如何避免这样的延误?

CloudBlockBlob blob = this.GetBlobReference(key);    
using(var msGet = new MemoryStream())
{
    await this._ap.Do(() =>
    {
        var downloadToStreamAsync = blob.DownloadToStreamAsync(msGet);
        return downloadToStreamAsync;
    }).ConfigureAwait(false);
}

【问题讨论】:

标签: c# azure azure-sdk-.net


【解决方案1】:

看起来这是一个 Azure 问题。 https://github.com/Azure/azure-webjobs-sdk-script/issues/298

目前,Function 应用有短暂的空闲超时,因此如果它们在 5 分钟内没有收到请求,下一个请求会导致冷启动,需要更长时间。我们正在考虑增加此超时时间,这将使这种情况变得不那么常见。

看起来唯一的解决方案是让服务器保持温暖。我认为运行一项将在 3 分钟内调用 1 次 Azure 存储的服务就足够了。避免冷启动

【讨论】:

  • 所以,要明确一点,这与 Azure 存储无关。这是特定于 Web 应用程序(您在问题或标记中未提及使用的东西)。
  • 这只是理论,我不确定 100%。但它看起来很相似,因为症状是一样的。
  • Azure Functions(和 Web 应用)特定于应用服务。 Azure Functions 的 5 分钟超时是特定于 Azure Functions 的。
猜你喜欢
  • 2022-01-06
  • 1970-01-01
  • 2013-10-05
  • 2012-05-18
  • 2016-01-04
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多