【问题标题】:"Storage account management operations" and ClientThrottlingError“存储账户管理操作”和ClientThrottlingError
【发布时间】:2019-08-29 11:51:30
【问题描述】:

根据Storage account scale limits,Azure 中的每个存储帐户每秒可以处理 20.000 个请求。

但也有Storage resource provider scale limits存储帐户管理操作(读取)限制为每 5 分钟 800 个请求。

我们似乎已经达到了后者的限制,我们想知道什么样的操作算作存储帐户管理操作。今天早上,我们的生产系统中有几分钟的间歇性 503 响应,在 5 分钟内进行了 2600 次 GetBlob 操作。

  • 哪些操作算作存储帐户管理操作
  • 我们使用 Blob 存储 SDK 中的 BlobClient 还是 .NET 中的 HttpClient 是否重要?
  • 我们如何读取 blob 属性和元数据,并将 blob 下载到(可能)达到每秒 20.000 个请求?
  • 对于在负载没有那么高的情况下可能导致节流的任何其他想法?

更新:

在与 Microsoft 支持人员(适当的...)沟通后,他们可以通知我们以下内容:

您遇到的限制类型是分区限制错误。当客户端对同一分区服务器执行过多请求时,会发生此类错误。当发生这种情况并且分区服务器过载时,它会在正常的 Azure 存储修复过程中执行内部负载平衡操作。

当正在访问的分区发生负载平衡操作(将分区重新分配给负载较小的服务器)时,存储服务会返回 500 或 503 错误。

我之前提到的限制(800 次读取 5 分钟)确实是针对管理操作而不是针对数据操作。在您的情况下, GetBlob 是数据操作,不受这些硬限制。在分析了您的存储帐户的入口/出口限制以及每秒事务数之后,我验证您似乎也距离达到阈值很远。

仅用于记录和改进的可搜索性:在 Metrics 中,这些错误显示为 ClientOtherErrorClientThrottlingError

【问题讨论】:

    标签: azure azure-resource-manager azure-blob-storage


    【解决方案1】:

    哪些操作算作存储帐户管理操作?

    here 列出的所有操作都被视为存储帐户管理操作。本质上,您在管理存储帐户本身(而不是其中的数据)时执行的操作被视为管理操作。

    我们是否使用 Blob 存储 SDK 中的 BlobClient 或 .NET 的 HttpClient?

    没有。这些操作处理数据,不被视为管理操作的一部分。这些操作有单独的吞吐量限制。

    我们如何读取 blob 属性和元数据,并将 blob 下载到 (可能)达到每秒 20.000 个请求?

    请参阅上一个问题的答案。

    【讨论】:

      猜你喜欢
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2023-04-10
      • 2014-07-18
      • 2021-01-08
      相关资源
      最近更新 更多