Backup program is unsuccessful when you back up a large system volume

This article provides a resolution for the issue that backup program is unsuccessful when you back up a large system volume.

Applies to:   Windows Server 2012 R2, Windows 10 - all editions
Original KB number:   304101

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 ones:

    [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 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. It 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. It 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

Important

This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows

You may have to change two registry settings. 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.

      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.

Windows NT 4.0

Important

This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows

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 it, Microsoft recommends that you test low values first.

Resolve the second problem

One possible resolution is to restrict the backup so that it backs up one file at a time. It 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. 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. It 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, large numbers of files or files that are 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 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.

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.