We see the same MSPi non-paged pool leak on a Windows Server 2025 S2D cluster (4 × Dell R640, CSVFS_ReFS, two CSVs: 9 TB NVMe mirror + 18 TB hybrid). Build 26100.33438 (KB5122871), refs.sys 10.0.26100.33438, so the September CU does not fix it for us either.
One node reached 40,066,531 MSPi allocations = 152.8 GiB non-paged pool after 24.8 days uptime (384 GB RAM); MSPi was 99% of all NP pool.
1. Growth is tied to CSV ownership
- Owning one CSV: ~6 GB/day. Owning both: ~17 GB/day (~18,000 allocs vs ~3,000 frees per minute).
- Nodes owning no CSV: MSPi stays near zero (0.01 GB on a node running 12 VMs).
- After moving the CSVs off a node, growth stops immediately (0 allocs/frees per minute), but the memory is never released. Only a reboot frees it.
2. Live kernel dump (LiveKD -ml) of the affected node
-
!poolused 2 MSPi: 40,066,531 allocs, 164,108,436,752 bytes, Minstore generic/untagged allocation, refs.sys - Every allocation is a large page allocation of exactly 0x1000 bytes.
- 24 blocks sampled across ~1.48M hits from
!poolfind MSPi -nonpaged -largeare byte-for-byte identical: 512 bytes of data, the rest zero, no pointers to code or kernel objects. - Those 512 bytes are a GPT protective MBR (LBA 0):
| Offset | Bytes | Meaning |
|---|---|---|
| 0x000 | 33 C0 8E D0 BC 00 7C … |
Windows MBR boot code |
| 0x1B8 | 00 00 00 00 |
Disk signature 0 (GPT) |
| 0x1C2 | EE |
Partition type: GPT protective |
| 0x1C6 | 01 00 00 00 |
Starting LBA 1 |
| 0x1CA | FF FF FF FF |
Size: disk > 2 TiB |
| 0x1FE | 55 AA |
Boot signature |
So it looks like refs.sys (Minstore) repeatedly reads sector 0 of a large GPT disk, most likely the CSV virtual disk, into a 4 KB non-paged buffer that is never freed. At ~6 GB/day that is roughly 17 reads/sec per CSV on the coordinator.
How to check your own nodes
poolmon -b # MSPi Nonp bytes per node
Get-ClusterSharedVolume | ft Name, OwnerNode # compare with CSV owners
!poolused 2 MSPi # in a dump
!poolfind MSPi -nonpaged -large # then db <addr> on a few hits
Interim mitigation: watch MSPi per node, move CSVs away and reboot before NP pool gets critical. A live dump is available if Microsoft wants it.