2

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

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

我不知道谁在 MS 中签署了这种运营模式,但它乞求一个简单的为什么?. 为了更好地理解,我将“为什么”分解为 3 个“为什么”子问题,以便在 Azure SDK 1.8 中进行缓存:

  1. 为什么缓存的诊断与缓存本身相结合?我们只需要缓存来提高性能...
  2. 为什么推荐高达 20Gigs?如果我把它拨到 500MB 会怎样?
  3. 有点离题但仍然相关:为什么本地存储的减少需要完全重新部署?这尤其令人痛苦,因为 Azure 没有提供任何强大的控制来保留 IP 地址。因此,如果您需要与使用白名单 IP 的第三方合作 - 太糟糕了!?

PS:我确实考虑将其分解为 3 个单独的问题。但是鉴于它们是紧密耦合的,这似乎对未来的读者来说是一种更有帮助的方法。

4

2 回答 2

2

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

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

希望这可以帮助。

于 2012-11-27T08:21:46.623 回答
1

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

于 2012-11-13T12:06:18.923 回答