【问题标题】:Has provisioning storage accounts through resource manager degraded in performance?通过资源管理器配置存储帐户是否会降低性能?
【发布时间】:2016-04-27 23:47:14
【问题描述】:

我正在使用 AzureRm Powershell commandlet 发布一个 Azure 资源管理器模板,一切似乎都运行良好。除非它预配“Microsoft.Storage/storageAccounts”类型的资源,否则它需要 10 多分钟才能完成。这符合预期吗?我不记得以前花了这么长时间。

我正在部署到美国东部,使用 Standard_LRS 存储类型。

    {
      "name": "[parameters('storageName')]",
      "type": "Microsoft.Storage/storageAccounts",
      "location": "[parameters('deployLocation')]",
      "apiVersion": "2015-06-15",
      "dependsOn": [ ],
      "tags": {
        "displayName": "[parameters('storageName')]"
       },
       "properties": {
         "accountType": "[parameters('storageType')]"
       }
     }

【问题讨论】:

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


    【解决方案1】:

    这是一个有趣的问题,稍后我可能会花一点时间来获取指标!

    但是,我怀疑您是正确的,但情况确实如此。

    当您在 Powershell 中创建存储帐户时,无论是服务还是资源管理,您都需要提交一个作业来创建一个帐户,这就是所有需要发生的事情。

    部署模板时,需要完成许多步骤。比如

    • 模板验证
    • 作业排序/解决依赖关系(即使只有一个步骤,这也是管道的一部分)
    • 与现有基础架构比较(因为模板是幂等的,所以需要检查当前存在的内容)
    • 创建部署作业
    • 实际部署

    管道中的每一步都(很可能)通过一个队列执行,因此即使是每一步出队的几秒钟也会加起来。

    如果您启用详细/调试日志记录,您会看到很多这样的情况(尤其是对于较大的模板)​​

    【讨论】:

    • 根据我的经验,通过资源管理器 API(没有任何模板)创建存储帐户实际上非常耗时,但我不知道其中的原因。事实上,前几天在 Stack Overflow 上也有人问过类似的问题,也谈到了同样的问题。
    • @GauravMantri 在幕后,ARM API 都输入相同的进程是有道理的。在某个时候,API 会向管道中注入一个作业。
    • 我认为您是对的,我一直在等待处理该步骤的队列中陷入困境。奇怪的是,创建存储帐户的时间一直是 10 分钟。不过我这两天刚试了8次,还是30秒(比较符合我的经验)。
    • 我认为,如果您正在创建一个名称为您以前使用过的 storageAccount并且在删除它之后立即执行此操作,您会看到延迟,因为仍在进行清理操作。如果您等待一段时间(例如 10-15 分钟)或使用唯一名称,那么它应该在 30 秒的窗口内完成。这是你看到的行为吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    相关资源
    最近更新 更多