Understanding and configuring Registry Size Limit (RSL)

Summary

This article describes Registry Size Limit (RSL) and tells how to configure it.

More Information

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

By default, RSL is 25 percent of the size of paged pool. Setting up the size of paged pool (see PagedPoolSize value of the Registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management) also affects the size of RSL.

You can also manually set the RSL:

Run the Registry Editor (REGEDT32.EXE).

Locate the key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control.

Modify the value RegistrySizeLimit (create it first it if it does not already exist) to reflect the desired size, in terms of bytes.

NOTE: RegistrySizeLimit must have a type of REG_DWORD, and a data length of 4 bytes, or it is ignored. If you set the value RegistrySizeLimit to less than 4 megabytes (MB), it is forced up to 4 MB. If you set it to greater than about 80 percent of the size of paged pool, it is set down to 80 percent of the size of paged pool (it is assumed that paged pool is always more than 5 MB). If you set it to 0xffffffff the maximum size allowable (or 80 percent of paged pool, up to 102 MB) is set.

Shut down and restart Windows NT for changes in RSL to take effect.

Note A system restart is required after the RSL has been increased either through the graphical user interface (GUI) or the registry, because this change does not happen dynamically. If you do not restart the system, you may experience the following event:

In Windows NT 4.0, and Windows NT 4.0, Terminal Server Edition, the maximum paged pool size is 192 MB, so RSL can be a maximum of 153.6 MB.

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

In Windows 2000, the maximum paged pool size is approximately 370-400 MB, when you do not use the /3gb command-line switch (this makes the RSL greater than 296 MB). If you use the /3gb switch, these values remain unchanged from Windows NT 4.0.

Additional Notes on RSL

RSL sets a maximum, not an allocation (unlike some other such limits in the system). Setting a large RSL will NOT cause the system to use that much space unless it is actually needed by the Registry. It also does NOT guarantee that that much space will be available for use in the Registry.

In Windows NT version 3.1, paged pool defaults to 32 MB, so the default RSL is 8 MB (enough to support approximately 5000 user accounts). In Windows NT 3.5, paged pool can be set to a maximum of 128 MB, so RSL can be no larger than about 102 MB (enough to support approximately 80,000 users; however, other system limitations might keep this number of users considerably lower).

RSL includes space in the hives themselves, as well as some of the Registry's runtime structures. Other runtime structures are either billed against standard quota, or are protected by size limits and serialization.

To ensure that you can always at least boot and edit the Registry if you set RSL incorrectly, quota checking is not turned on until after the first successful loading of a hive (that is, loading a user profile).

For all but a few domain controllers, RSL never needs to be changed.

The limitations imposed by RSL are approximate.

For more information on the Registry size limit, search on the keyword "RegistrySizeLimit" in the Windows NT Registry Entries Help file found in the Windows NT version 3.5 Resource Kit, or query on the following keyword in the Microsoft Knowledge Base: