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

时间:2012-11-13 08:13:43

标签: azure azure-diagnostics azure-caching

我安装了Azure 1.8工具/ SDK,它将我的项目协同缓存从预览升级到最终。但是,它还决定在角色的本地存储(DiagnosticStore)中添加20GB。我手动将其拨到500MB,但随后我在Role的Property页面中收到以下消息(cloud proj => roles =>右键单击role =>属性,即ServiceDefinition.csdef的GUI):

  

缓存诊断建议使用20GB的本地存储空间。如果你减少   本地存储的大小需要完全重新部署   导致此Cloud Service丢失虚拟IP地址。

我不知道是谁在MS中注销了这个操作模型,但它只是简单的 为什么? 。为了更好地理解,我打破了“为什么”在Azure SDK 1.8中进行缓存的3个“为什么”子问题:

  1. 为什么缓存的诊断与缓存本身有关?我们只需要缓存性能......
  2. 为什么推荐高达20Gig?如果我把它拨到500MB会怎么样?
  3. 稍微偏离主题但仍然相关:为什么本地存储的减少需要完全重新部署?这尤其令人痛苦,因为Azure不提供任何强大的控制来保留IP地址。因此,如果您需要与使用白名单IP的第三方合作 - 太糟糕了!?
  4. PS:我确实考虑过把它分成3个单独的问题。但鉴于它们是紧密耦合的,这对未来的读者来说似乎是一种更有用的方法。

2 个答案:

答案 0 :(得分:2)

诊断存储用于存储缓存诊断数据,包括 - 服务器日志,故障转储,计数器数据等,可以通过配置缓存诊断(OnStart方法中的CacheDiagnostics.ConfigureDiagnostics调用 - 无需此调用,自动上载到Azure存储,数据在本地VM上生成,但未上传到Azure存储中。并且收集的数据量由诊断级别(级别越高,收集的数据越多)控制,可以动态更改。有关缓存诊断的更多详细信息,请访问:http://msdn.microsoft.com/en-us/library/windowsazure/hh914135.aspx

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

答案 1 :(得分:1)

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