Hello,
The CSV Read Cache in Hyper‑V is controlled by the BlockCacheSize parameter, which defines how much host RAM is reserved for caching reads on Cluster Shared Volumes. By default, it can dynamically consume a large portion of memory, which is why you’re seeing hosts starve and crash under heavy read workloads. To cap it, you need to explicitly set the cache size per node using PowerShell against the cluster resource.
Run this on one of the cluster nodes with elevated PowerShell:
powershell
Get-Cluster | Set-ClusterParameter BlockCacheSize 512
The value is in megabytes, so in this example the cache is capped at 512 MB. You can adjust the number based on how much RAM you want to reserve for CSV cache versus leaving available for workloads. After setting it, you must restart the Cluster service on each node for the change to take effect:
powershell
Stop-Service ClusSvc
Start-Service ClusSvc
Alternatively, you can reboot the nodes during a maintenance window. Verify the setting with:
powershell
Get-Cluster | Get-ClusterParameter BlockCacheSize
Keep in mind that this is a cluster‑wide parameter, so the value applies to all nodes. Microsoft’s official guidance is to size the cache conservatively in environments with memory pressure, or disable it entirely (BlockCacheSize 0) if your workloads are consistently read‑heavy and the cache is doing more harm than good.
I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!
HP.