Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question
    
are you able to repro this? If yes, how long does it take to repro this issue? –  magicandre1981 Apr 28 '13 at 18:49
    
Thanks for the response. Yes, I can reproduce this faithfully, simply by initiating the FlexRAID Validate function. This effect occurs every time. I've tried to see if the number of drives (and thus, files) is the cause by starting with one data drive, running Validate, then adding drives sequentially one at a time. The kernel paged virtual memory will always increase, but adding more drives (and therefore scanning time) will increase the maximum size of the memory use. With 9 data drives + 3 parity drives (my current config), kernel paged virtual memory will reach as high as 20 GB (!). –  Matsutake Apr 28 '13 at 22:25
    
Forgot to mention, my array is all 2 TB drives. –  Matsutake Apr 28 '13 at 22:33
    
ok, how long does this take to grow so much? –  magicandre1981 Apr 29 '13 at 4:13

1 Answer 1

This post explains pretty much everything relevant to your issue, including various solutions:

http://blogs.technet.com/b/askperf/archive/2011/09/23/getting-to-know-the-mmst-pool-tag.aspx

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 http://support.microsoft.com/default.aspx?scid=kb;EN-US;312362 (also linked to from the post).

I recommend reading the whole post for further details. For a more general introduction to the paged pool, blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx is worth a read too (not a link, because SO doesn't think I'm worthy enough to post more than 2 links yet...).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.