Azure 缓存诊断建议使用20GB的本地存储空间(!)。为什么?

Azure 缓存诊断建议使用20GB的本地存储空间(!)。为什么?,azure,azure-diagnostics,azure-caching,Azure,Azure Diagnostics,Azure Caching,我安装了Azure 1.8工具/SDK,它将我的项目共址缓存从预览升级到最终版本。但是,它还决定将20GB添加到角色的本地存储中(DiagnosticStore)。我手动将其调低至500MB,但随后在角色的属性页(cloud proj=>roles=>right click Role=>properties,即ServiceDefinition.csdef的GUI)中收到以下消息: 缓存诊断建议使用20GB的本地存储。如果你减少 本地存储的大小需要完全重新部署,这将 导致此云服务的虚拟IP地址丢

我安装了Azure 1.8工具/SDK,它将我的项目共址缓存从预览升级到最终版本。但是,它还决定将20GB添加到角色的本地存储中(
DiagnosticStore
)。我手动将其调低至500MB,但随后在角色的属性页(cloud proj=>roles=>right click Role=>properties,即ServiceDefinition.csdef的GUI)中收到以下消息:

缓存诊断建议使用20GB的本地存储。如果你减少 本地存储的大小需要完全重新部署,这将 导致此云服务的虚拟IP地址丢失

我不知道是谁在MS内签署了这一运营模式,但它要求一个简单的为什么?。为了更好地理解,我将“为什么”分为3个子问题,用于Azure SDK 1.8中的缓存:

  • 为什么缓存诊断与缓存本身相结合?我们只需要缓存来提高性能
  • 为什么要推荐高达20吉布斯的音乐?如果我把它调低到500MB会发生什么
  • 有点离题,但仍然相关:为什么本地存储的减少需要完全重新部署?这尤其令人痛苦,因为Azure不提供任何强大的控制来保留IP地址。因此,如果您需要与使用白名单IP的第三方合作-太糟糕了
    附言:我确实想过把它分成3个独立的问题。但考虑到它们紧密耦合,这似乎对未来的读者来说是一种更有用的方法。

    我将回答问题#3-本地存储的减少是唯一不能就地完成的部署更改之一(增加是可以的,还有VM大小的更改,以及现在不需要重新部署的其他一些更改)。有关就地更新的详细信息,请参阅。

    诊断存储用于存储缓存诊断数据,其中包括-服务器日志、崩溃转储、计数器数据等,可通过配置缓存诊断自动上载到Azure存储(OnStart方法中的CacheDiagnostics.ConfigureDiagnostics调用-如果没有此调用,数据将在本地VM上生成,但不会上载到Azure存储中)。收集的数据量由诊断级别控制(级别越高,收集的数据越多)可以动态更改。有关缓存诊断的更多详细信息,请访问:

  • 由于您启用了缓存,因此它将附带默认诊断级别,如果发生缓存问题,该级别应有助于诊断缓存问题。除非您在OnStart中调用ConfigureDiagnostics方法(将数据上载到Azure存储),否则此数据将存储在本地
  • 如果提供较低的存储值(例如2GB),则无法使用较高的诊断级别,因为它们需要更多的空间(对于XL虚拟机,崩溃转储本身可能需要12GB以上)。如果您想要更高的级别,那么您可能希望通过更改诊断存储大小来升级部署,这违反了目的-更改诊断级别而无需重新部署/升级/更新/重新启动。这就是设置20GB限制以满足所有诊断级别的原因(可以在运行的部署中使用cscfg更改来更改它们)
  • 答案在上面

  • 希望这会有所帮助。

    我认为它需要完全重新部署的唯一原因是它必须为该实例上的本地存储创建一个大小正确的新VHD。至于为什么会有这么多?谁知道诊断等需要什么大小,希望有人能透露一些信息。但您仍然可以进行VIP交换,这不会导致错误IP地址,对吗?