Admin Tip #95: Windows NT Memory management parameters |
Hits: Failed to execute CGI : Win32 Error Code = 3
|
Control Panel Label |
Size |
LargeSystemCache |
Minimize Memory Used |
1 |
0 |
Balance |
2 |
0 |
Maximize Throughput for File Sharing |
3 |
0 |
Maximize Throughput for Network Applications |
3 |
1 |
If you enable Maximize Throughput For Network Applications, the following applications will benefit:
However, be aware that with Maximize Throughput For Network Applications enabled, performance will suffer for each of the following:
These standard settings are built into server's Control Panel. You can use any combination. If you want to push your systems performance (maybe push it over) twiddle with these settings at your own risk.
Hive: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
Key: Memory Management
Name: LargeSystemCache
Type: REG_DWORD
Value: 0 or 1
Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer
Key: Parameters
Name: Size
Type: REG_DWORD
Value: 1, 2, or 3
DisablePagingExecutive default setting was "set" when RAM was precious and scarce. Portions of system code and device drivers can be paged to disk when the system needs more page frames in RAM. The system slows when it next needs that code or drivers since it must load them from the page file. The system stops while the required code is swapped in or out of RAM dependent on very long hard drive access times. If you have more than sufficient RAM, disabling paging will speed the system overall. I am not sure I would turn on this option with less than 512M, at least for W2K and XP Pro. A CPU intensive setting.
Hive: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
Key: Memory Management
Name: DisablePagingExecutive
Type: REG_DWORD
Value: 0 paging allowed
Value: 1 paging disallowed
IoPageLockLimit controls the size of memory buffers for I/O devices. The default minimizes RAM usage. An I/O intensive system could benefit from larger buffer sizes. Caution: setting this parm too high can result in slower performance. Set it in increments and see how it effects your system. Windows NT / W2K / XP.
Hive: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
Key: Memory Management
Name: IoPageLockLimit
Type: REG_DWORD
Value: 0x00000000 512KB
Value: 0x00100000 1MB
Value: 0x00200000 2MB
Value: 0x00400000 4MB
Value: 0x00800000 8MB
Hive: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
Key: Memory Management
Name: SecondLevelDataCache
Type: REG_DWORD
Value: 0x00000000 256K L2 cache
Value: 0x00000200 512K L2 cache
Value: 0x00000400 1M L2 cache
Value: 0x00000800 2M L2 cache
Microsoft states that the above is erroneous and that the second level (L2) cache is recognized by the NT/W2K/XP and is fully utilized regardless of the setting of this parameter. Thus I would not twiddle with it, although if Microsoft is correct, it doesn't matter.
There are other parms in this key but as far as I can tell, the complexity is best handled by NT's dynamic setting at boot. If you don't ever reboot the box, these other parms never get twicked by the OS. I recommend automating a reboot on off hours once a week or whatever interval makes since given the changing mix of whats running on the server. This also prevents applications with memory leaks from bring down the system. This is most useful on servers under heavy loads.
Related:
Gather information so that Microsoft support engineers can troubleshoot performance problems Q175658
PagedPoolSize and NonPagedPoolSize Values in Windows NT Q126402
STOP 0x78 When NonPagedPoolSize > 7/8 of Physical Memory Q184758
How to Use Poolmon to Troubleshoot Kernel Mode Memory Leaks Q177415
Heap Manager Change in Service Pack 4 Q195008
Registry Size Limit Change Results in PagedPoolSize Change Q140364
Multiple Entries in Zone File Cause Memory Leak in Dnsadmin.exe Q182713
COPY Command Causes File Cache to Grow (NT4,SP4) Q163880
Configuring Page Files for Optimization and Recovery Q197379