Windows Server 2016 CSV read cache crashes under heavy load

T Ken 60 Reputation points
2026-09-15T07:28:24.19+00:00

We have a Windows Server 2016 host with 512GB RAM where enabling the CSV Read Cache leads to nonpaged pool memory exhaustion. During intense sequential read operations, the host nodes crash unexpectedly. How can we fine‑tune or optimize the BlockCacheSize thresholds to prevent these crashes while keeping cache performance stable ?

Windows for business | Windows 365 Business
0 comments No comments

Answer accepted by question author
Domic Vo 33,510 Reputation points Independent Advisor
2026-09-15T08:00:34.6133333+00:00

Hello,

On Windows Server 2016 with very large memory configurations, the CSV Read Cache can indeed consume nonpaged pool aggressively if BlockCacheSize is set too high. The cache is allocated from nonpaged pool, not general RAM, and the nonpaged pool has strict kernel limits regardless of how much physical memory is installed. That’s why you see exhaustion and node crashes during heavy sequential reads.

The tuning point is the registry path HKLM\System\CurrentControlSet\Services\CsvFs\Parameters. The key BlockCacheSize defines the maximum cache size per node in MB, and BlockCacheSizeMBHigh defines the high watermark where cache trimming begins. Microsoft guidance is to keep the cache allocation well below 25% of the nonpaged pool. On a 512 GB host, the nonpaged pool is typically only a few gigabytes, so values above 256 MB can already destabilize the system.

The best practice is to start conservatively, for example setting BlockCacheSize to 128 MB and BlockCacheSizeMBHigh to 256 MB, then monitor performance counters (CSVFS Block Cache Size, Memory\Pool Nonpaged Bytes) during workload runs. If the nonpaged pool remains stable, you can increase gradually, but avoid pushing into the gigabyte range. Always restart the node after changing these registry values to ensure they take effect.

If you need higher throughput, consider distributing the workload across multiple nodes rather than enlarging the cache excessively. The CSV Read Cache is designed to accelerate sequential reads, but stability must take precedence over raw cache size. Keeping the thresholds modest ensures you gain the performance benefit without risking kernel resource exhaustion.

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!

Domic Vo.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Oldest

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.