Microsoft KB Archive/304101

From BetaArchive Wiki

Article ID: 304101

Article Last Modified on 10/30/2006



APPLIES TO

  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0 Enterprise Edition



This article was previously published under Q304101

Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows registry


SYMPTOMS

When you try to create a backup by using NTBackup.exe or by using a third-party backup program that uses the NT Backup API, the backup may not be completed successfully. This behavior may occur even if you run the program locally on the server. Additionally, you may experience one or more of the following symptoms:

  • One or more of the following error messages appear in the application log:

    Error message 1

    ERROR 1450: Insufficient system resources exist to complete the requested service.

    ERROR 1450: / hex 0x5aa ERROR_NO_SYSTEM_RESOURCES

    Operating system error 1450 Insufficient system resources exist to complete the requested service.

    Write on "device" failed, status = 1450

    Error message 2

    ERROR 1130: Not enough server storage is available to process this command.

    ERROR 1130 / hex 0x46a ERROR_NOT_ENOUGH_SERVER_MEMORY

    Backup or restore operation terminating abnormally.

  • Event ID 2020 and Event ID 2021 messages may be generated by the Server service.

    Note Typically, Event ID 2020 and Event ID 2021 messages do not appear.
  • If you are running the Hewlett-Packard (HP) OmniBack backup program, you may receive an error message that is similar to the following:

    [81:78] C:\foldername\file.name
    Cannot read 57256 bytes at offset 436176408(:1): ([1450]
    Insufficient system resources exist to complete the requested service.).

  • If you view the Performance tab in Windows Task Manager, you notice that nonpaged kernel memory is very low.

Note You may receive these error messages for reasons that are not related to the problem that this article describes. If you receive these error messages only when you back up large system volumes, the two most probable causes are those that this article describes.

To help determine if you are experiencing this problem, start Windows Task Manager, and then click the Performance tab. At the lower right, locate the Kernel Memory (K) area, and then note the value for Paged. You may experience this problem in Microsoft Windows 2000 or in Microsoft Windows NT 4.0 when this value reaches approximately 160 megabytes (MB). Alternatively, you may experience this problem in Microsoft Windows Server 2003 when this value exceeds 160 MB. If you have set the registry key for paged pool memory to a higher value, you will not experience this problem until a much higher value of paged pool memory is used (the problem may occur when the paged pool memory usage reaches about 80 percent of the set value). If you have the gflags setting turned on for pool tags and if you use the Poolmon utility, you see a higher usage of the MmSt tag. This is the pool tag that is used to map the operating system memory that is used to track shared files.

CAUSE

The two causes of this problem are related. The more frequent cause is listed first:

  • More files are open than the memory cache manager can handle. As a result, the cache manager has exhausted the available paged pool memory.
  • The backup program has tried to back up a file whose size is larger than the backup API can access on that version of the operating system. This has the same result (that is, the paged pool is exhausted).


Note This second issue is more likely to occur on a Microsoft Windows NT 4.0-based computer.

The resolution for each problem differs depending on whether you experience the problem in Windows Server 2003, in Microsoft Windows 2000, or in Windows NT 4.0.

RESOLUTION

Windows Server 2003 and Windows 2000

Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

You may have to change two registry settings. You must always change the first setting. Depending on the configuration of your system, you may also have to change the second setting.

Registry setting 1

  1. Click Start, click Run, type regedit in the Open box, and then click OK.
  2. Locate and then click the following registry subkey:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type PoolUsageMaximum as the entry name, and then press ENTER.
  5. Right-click PoolUsageMaximum, and then click Modify.
  6. Click Decimal.
  7. In the Value data box, type 60, and then click OK.

    Important
    • Use 60 as your initial value. If your backup does not succeed, use 40 as your value. If that does not work, you must change the behavior of your backup program to reduce the demand of paged pool. If the value works, you may want to increase the value by approximately 25 percent until the backup does not work. If the backup is unsuccessful, use the second registry setting that is described in this article.
    • Make sure that the value for this registry setting is not more than 60.
    • If you are using the /3GB switch, use 40 as your initial setting. Note that this value is a percentage value.
  8. Quit Registry Editor.
  9. Restart your computer.

Because you must test these settings during the most stressful backups, you may have to wait a month for a whole backup cycle to complete if you are not sure which backup consumes the most resources. Because of this situation, Microsoft recommends that you test low values first. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

312362 Server is unable to allocate memory from the system paged pool


Registry setting 2

  1. Click Start, click Run, type regedit in the Open box, and then click OK
  2. Locate and then click the following registry subkey:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type PagedPoolSize as the entry name, and then press ENTER.
  5. Right-click PagedPoolSize, and then click Modify.
  6. Click Hexadecimal.
  7. In the Value data box, type a value of FFFFFFFF, and then click OK.

    Important
    • Setting PagedPoolSize to 0xFFFFFFFF (-1) allocates the maximum paged pool instead of other resources to the computer. This is typically required on a domain controller or a terminal server. By default, most Windows 2000 systems seem to be limited to a paged pool maximum size of 160 MB. You can verify this by downloading the kernel debuggers from the public Web site and opening a kernel dump in the debugger that you want to use. The command to use is !vm. This shows a paged pool maximum of 163840 KB, for example. Adding this value reduces the Page Table Entries (PTEs) that are available on a system and extends the paged pool maximum to 343 MB in Windows 2000. The paged pool maximum size can be extended to a larger value in Windows Server 2003.

      Note The default and maximum paged pool values for Windows Server 2003 are much larger than in Windows 2000. Typically, the Windows Server 2003 values are at least 50 percent higher than the values found in Windows 2000. These larger values makes it more unlikely that you will experience the issue where paged pool values contribute to the problem that is described in this article. However, it is still possible that this issue may occur.
    • This value restricts the system PTEs that are available. PTEs are another unrelated system resource that your system uses. This setting may cause your operating system to stop unexpectedly and to display a stop 0x3F error on a blue screen when it starts. You can recover from this by using the Last Known Good restart option on the system restart menu or recovery console. Use Performance Monitor to view the Free System Page Table Entries counter. You can add the PagePoolSize setting if the observed free values are over 40,000.
    • If you are running /3GB and /PAE together, do not set this setting without extensive testing and before you establish exactly how many system PTES you must have in your environment. You will probably see values in the range of 10,000-20,000 free. Use the articles to configure paged pool memory but never drop below 10,000 free system PTEs. Do not set this to any other value if you are using the /3GB switch. The only supported values are 0, 0A000000, and FFFFFFFF.
  8. Quit Registry Editor.
  9. Restart your computer.

For more information about how to avoid and resolve this problem, click the following article numbers to view the articles in the Microsoft Knowledge Base:

256004 How to troubleshoot "STOP 0x0000003F" and "STOP 0x000000D8" error messages in Windows Server 2003, Windows XP, and Windows 2000


Windows NT 4.0

Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

Note You must be using Windows NT 4.0 Service Pack 6a.

Resolve the first problem

  1. Start Registry Editor (Regedt32.exe).
  2. Locate and then click the following registry subkey :

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory_Management

  3. On the Edit menu, click Add Value, and then add the following registry value:

    Value name: UnusedFileCache
    Data type: REG_DWORD
    Radix: Decimal
    Value data: 15

    Note This number represents the percent of pool that can be consumed by unused segments. A value of 0 indicates that the system will use the default behavior that is similar to Windows NT 4.0 Service Pack 3. A value of 5 through 40 indicates that the system will trim the unused file cache based on pool usage. 5 is most aggressive (that is, it increases the size of the cache the least) and 40 is least aggressive (that is, it lets the cache grow the largest before it trims the cache.)

    Important

    • Use 15 as your initial value. If your backup does not succeed, use 5 as your value. If this does not work, you must either change the behavior of your backup program to reduce the demand of paged pool, or you must upgrade to Windows 2000, where more than double the paged pool is available (for more information, see the "Windows 2000" section). If this value works, you may want to increase it by approximately 20 percent until the backup is unsuccessful. If the backup is unsuccessful, use the second registry setting that is described in this article.
    • If you are using the/3GB switch, use 5 as your initial setting.
  4. Quit Registry Editor.
  5. Restart your computer.

Because you must test these settings during the most stressful backups, you may have to wait a month for a whole backup cycle to complete if you are not sure which backup consumes the most resources. Because of this, Microsoft recommends that you test low values first. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

171458 Windows NT may fail on request to open large files


Resolve the second problem

One possible resolution is to restrict the backup so that it backs up one file at a time. This may or may not work depending on the sizes of the files to be backed up. (It is expected to work on files that are smaller than 180 gigabytes [GB].) You can also try this resolution if you are backing up several large files, but each file is smaller than 180 GB. You must follow the steps to resolve the first problem also. For files larger than 180 GB, no workaround exists. Therefore, you must upgrade the system to Windows 2000. If you try to back up the system remotely as a workaround, you will experience the same problem.

  1. Start Registry Editor (Regedt32.exe).
  2. Locate and then click the following registry subkey:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory_Management

  3. On the Edit menu, click Add Value, and then add the following registry value:

    Value name: DisablePagedPoolHint
    Data type: REG_DWORD
    Radix: Decimal
    Value data: 1

  4. Quit Registry Editor.
  5. Restart your computer.


STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

NTBackupread and NTBackupwrite both use buffered I/O. This means that Windows NT caches the I/O that is performed against the stream. It is also the only API that will back up the metadata of a file. This cache is pulled from limited resources: namely, pool and nonpaged pool. Because of this, extremely large numbers of files or files that are very large may cause the pool resources to run low.

Several factors may exhaust the supply of paged pool memory. You can turn on pool tagging and take poolsnaps at different time intervals to help you to understand which driver is exhausting paged pool memory. If the poolsnaps indicate that the MmSt tag (Mm section object prototype PTEs) is the largest consumer and is over 80 MB, a very large number of files are probably open on the server.

The possible maximum paged pool memory on a computer is 343 MB of paged pool in Windows 2000 with the paged pool key set to FFFFFFFF, or 164 MB if the key is not present. The possible maximum paged pool memory is 192 MB in Windows NT. By default, the Memory Manager tries to trim allocated paged pool memory when the system reaches 80 percent of the total paged pool. For example, 80 percent of 343 MB is 274 MB. If the Memory Manager cannot trim fast enough to keep up with the demand, the event that is listed in the "Symptoms" section of this article may occur. If you tune the Memory Manager to start the trimming process earlier (for example, when it reaches 40 percent), the computer can keep up with the paged pool demand during sudden peak usage so that it does not run out of paged pool memory. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

192409 Open files can cause kernel to report INSUFFICIENT_RESOURCES




The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.

Keywords: kbfaq kbprb KB304101