I'm currently running Win 7 Pro 64-bit on a file server system with 12 hard drives. The drives are connected through 2x IBM M1015 controller cards (flashed to LSI 9211-8i IT mode firmware). I'm using the system as a media file server, and running FlexRAID to manage a snapshot-RAID array. Files are very large Blu-ray backups, MKV files, typically 25-35 GB in size.
When FlexRAID performs a data integrity check (called "Validate"), it reads from all data disks simultaneously and calculates each file's checksum. When I run this task, my Paged Pool memory use quickly rises until the virtual memory allocated is gone, at which point Windows expands the VM pool. This continues until the task finally completes, but during this time my system becomes very slow and unstable.
Process Explorer shows no process that is causing the leak. FlexRAID is using only 79K of memory. Using Poolmon, I've discovered that the MmSt tag is the culprit -- but this is Window's own memory manager. For an unknown reason, Windows is mapping the MKV files into virtual memory, causing the high usage. I'm not sure how to stop this.
I've tried the suggestions shown in KB312362 (written for MS Server 2003), but it didn't work. I've turned off MS Security Essentials and the Superfetch service, but also no improvement.
Is there a way for me to dig deeper into this, to see what the root cause could be?
41 Answer
This post explains pretty much everything relevant to your issue, including various solutions:
Relevant quotes from the post:
[...]
What is the MmSt pool tag?
The MmSt pool tag is used by the Memory Manager when reserving memory for section prototype PTEs. A prototype PTE is a structure that maps the physical location of a page or set of pages to a memory mapped file. [...]
[...]
Most Common Root Causes for high MmSt pool usage
- The Memory Manager cannot trim paged pool memory quickly enough before allocations start failing
- Heavy file I/O because too many files or large files are opened simultaneously
- Outlook .PST/Lotus Notes .NSF > files being stored on the server and opened over the network
- (Volume Shadow Copy) snapshots aren’t dismounting
- Large $MFT due to fragmentation or many files on the volumeVSS
[...]
Troubleshooting Steps and Resolutions
[...]
- Adjust Maximum Paged Pool Memory and Trimming
- [...]
- PoolUsageMaximum from KB312362 can safely be set to a decimal value of 40 which will cause trimming to start when paged pool reaches 40% of the maximum limit
- PagedPoolSize should be set to 0xFFFFFFFF to ensure the system reserves as much paged pool memory as possible
- [...]
[...]
Those registry values are located in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management according to (also linked to from the post).
I recommend reading the whole post for further details. For a more general introduction to the paged pool, is worth a read too (not a link, because SO doesn't think I'm worthy enough to post more than 2 links yet...).