CSV 缓存在内存负载下如何表现?

CSV 缓存在内存负载下如何表现?

我们正在考虑在新的 Hyper-V 2012 R2 集群中使用 Microsoft 的 CSV 缓存功能:

  • 它默认启用,每个 CSV 分配 512MB。
  • 最大可分配内存为80%。
  • 建议最大分配 64GB。

我们的节点将有足够的可用内存(以防节点发生故障等),因此大多数时间内我们的主机将有足够的可用内存。

我想知道的是,如果我们分配了全部 64GB,并且发生节点故障,导致剩余节点需要回收内存,会发生什么情况。主机是否能够从缓存中回收内存?是否可以通过检查系统进程来检测缓存?

答案1

您问了一个非常具体的问题——CSV 缓存在内存负载下做什么?

答案是内存是静态分配给 CSV 缓存的,并且永远不会被释放。因此,如果您遇到故障转移,该内存将无法用于其他任何用途,例如获取可能需要运行的虚拟机。

我怀疑,在相对较小的分配(默认的 1/2 GB)之后,CSV 缓存中更多内存的边际值对您来说很低。

答案2

您使用哪种存储作为托管 CSV 的共享存储?

如果是软件解决方案(软件定义存储),我建议关闭本机 CSV 缓存,改用解决方案的缓存。例如,软件定义存储(如 Starwind)有自己的 DRAM 缓存,可以在写回模式下工作(CSV 有只读缓存),大小不受限制(CSV 限制为 64GB),并且可以选择进行重复数据删除(CSV 不能) https://www.starwindsoftware.com/starwind-virtual-san

答案3

您所强调的变化是在 Windows 2012-R2 中引入的,专门针对 SoFS。

SoFS 的读取操作非常密集,因此更高的缓存设置将带来很大的好处(最大 80% / 建议最大 64GB)

对于 Hyper-V,建议在内存分配方面更加保守,原因正如您所强调的那样。CSV 缓存将与节点上的虚拟机争夺内存资源,特别是在由于节点故障而将机器从一个节点移动到另一个节点的故障情况下。

也就是说,您可以简单地将 CSV 缓存作为硬件设计的要求。您说您有“足够”的缓存。因此,在这个“足够”的内存范围内,您需要计算可以使用的最大缓存是多少,而不会限制虚拟机的在线。

嗨嗨。

相关内容