Программа резервного копирования не выполняется при резервном копировании большого системного тома

В этой статье описывается решение проблемы, из-за чего программа резервного копирования не выполняется при резервном копировании большого системного тома.

Применимо к: Windows Server 2012 R2, Windows 10 — все выпуски
Исходный номер базы знаний: 304101

Симптомы

При попытке создать резервную копию с помощью NTBackup.exe или с помощью сторонней программы резервного копирования, которая использует API резервного копирования NT, резервное копирование может быть выполнено не успешно. Это может произойти, даже если программа запускается локально на сервере. Кроме того, вы можете столкнуться с одним или несколькими из следующих симптомов:

  • Одно или несколько из следующих сообщений об ошибках отображаются в журнале приложений:
    Сообщение об ошибке 1

    ОШИБКА 1450: для завершения запрошенной службы недостаточно системных ресурсов.

    ОШИБКА 1450: / шестнадцатеричное 0x5aa ERROR_NO_SYSTEM_RESOURCES

    Ошибка операционной системы 1450 Недостаточно системных ресурсов для завершения запрошенной службы.

    Сбой записи на устройстве, состояние = 1450

    Сообщение об ошибке 2

    ОШИБКА 1130: недостаточно хранилища сервера для обработки этой команды.

    ОШИБКА 1130 / шестнадцатеричная 0x46a ERROR_NOT_ENOUGH_SERVER_MEMORY

    Операция резервного копирования или восстановления завершается ненормально.

  • Сообщения о событиях с идентификатором 2020 и 2021 могут создаваться службой сервера.

    Примечание.

    Как правило, сообщения о событиях с идентификатором 2020 и 2021 не отображаются.

  • Если вы используете программу резервного копирования OmniBack Hewlett-Packard (HP), может появиться сообщение об ошибке, похожее на следующее:

    [81:78] C:\foldername\file.name

    Не удается прочитать 57256 байт при смещении 436176408(:1): ([1450]
    Для завершения запрошенной службы недостаточно системных ресурсов.).

  • При просмотре вкладки Производительность в диспетчере задач Windows вы заметите, что объем памяти ядра не загружен.

Примечание.

Эти сообщения об ошибках могут возникать по причинам, не связанным с проблемой, описанной в этой статье. Если эти сообщения об ошибках поступают только при резервном копировании больших системных томов, наиболее вероятными причинами являются две наиболее вероятные причины, которые описаны в этой статье.

Чтобы определить, возникла ли эта проблема, запустите диспетчер задач Windows и перейдите на вкладку Производительность . В правом нижнем углу найдите область Памяти ядра (K) и запишите значение Paged. Эта проблема может возникнуть в Microsoft Windows 2000 или Microsoft Windows NT 4.0, когда это значение достигает приблизительно 160 мегабайт (МБ). Кроме того, эта проблема может возникнуть в Microsoft Windows Server 2003, когда это значение превышает 160 МБ. Если для раздела реестра для памяти страничного пула задано более высокое значение, эта проблема не будет возникать до тех пор, пока не будет использовано гораздо большее значение памяти на страницу пула (проблема может возникнуть, когда использование памяти в выгружаемом пуле достигает около 80 процентов от заданного значения). Если вы включили gflags параметр для тегов пула и используете служебную программу Poolmon, вы увидите более высокий уровень использования тега MmSt. Это тег пула, который используется для сопоставления памяти операционной системы, используемой для отслеживания общих файлов.

Причина

Две причины этой проблемы связаны. В первую очередь указывается более частая причина:

  • Открыто больше файлов, чем может обрабатывать диспетчер кэша памяти. В результате диспетчер кэша исчерпал доступную память выстраивленного пула.

  • Программа резервного копирования попыталась создать резервную копию файла, размер которого больше, чем API резервного копирования может получить в этой версии операционной системы. Он имеет тот же результат (то есть выстраивленный пул исчерпан).

    Примечание.

    Эта вторая проблема, скорее всего, возникает на компьютере под управлением Microsoft Windows NT 4.0.

Решение каждой проблемы зависит от того, возникла ли проблема в Windows Server 2003, Microsoft Windows 2000 или в Windows NT 4.0.

Разрешение

Windows Server 2003 и Windows 2000

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в соответствующей статье базы знаний Майкрософт:
322756 Создание резервной копии и восстановление реестра Windows

Возможно, потребуется изменить два параметра реестра. Всегда изменяйте первый параметр. В зависимости от конфигурации системы также может потребоваться изменить второй параметр.

Параметр реестра 1

  1. Нажмите кнопку Пуск, выберите команду Выполнить, в поле Открыть введите regedit и нажмите кнопку ОК.

  2. Найдите и откройте следующий подраздел реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. В меню Правка выберите пункт Создать, а затем Параметр DWORD.

  4. Введите PoolUsageMaximum в качестве имени записи и нажмите клавишу ВВОД.

  5. Щелкните правой кнопкой мыши PoolUsageMaximum и выберите команду Изменить.

  6. Щелкните Десятичный.

  7. В поле Значение введите 60 и нажмите кнопку ОК.

    Важно!

    • Используйте 60 в качестве начального значения. Если резервное копирование не удалось выполнить, используйте значение 40 в качестве значения. Если это не сработает, необходимо изменить поведение программы резервного копирования, чтобы уменьшить потребность в выстраившемся пуле. Если значение работает, может потребоваться увеличить значение примерно на 25 процентов, пока резервное копирование не будет работать. Если резервное копирование не выполнено, используйте второй параметр реестра, описанный в этой статье.
    • Убедитесь, что значение этого параметра реестра не превышает 60.
    • Если вы используете параметр /3 ГБ, используйте 40 в качестве начального параметра. Обратите внимание, что это значение является процентным значением.
  8. Закройте редактор реестра.

  9. Restart your computer.

Так как эти параметры необходимо протестировать во время самых напряженных резервных копий, вам может потребоваться подождать месяц, чтобы завершить весь цикл резервного копирования, если вы не уверены, какое резервное копирование потребляет больше всего ресурсов. В этой ситуации корпорация Майкрософт рекомендует сначала протестировать низкие значения. Для получения дополнительных сведений щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

312362 server не удается выделить память из системного выстраивного пула

Параметр реестра 2

  1. Нажмите кнопку Пуск, нажмите кнопку Выполнить, введите regedit в поле Открыть и нажмите кнопку ОК.

  2. Найдите и откройте следующий подраздел реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. В меню Правка выберите пункт Создать, а затем Параметр DWORD.

  4. Введите PagedPoolSize в качестве имени записи и нажмите клавишу ВВОД.

  5. Щелкните правой кнопкой мыши PagedPoolSize и выберите команду Изменить.

  6. Щелкните Шестнадцатеричный.

  7. В поле Значение введите значение FFFFFFFF и нажмите кнопку ОК.

    Важно!

    • Если параметру PagedPoolSize присвоено значение 0xFFFFFFFF (–1), компьютеру будет выделен максимальный пул страниц вместо других ресурсов. Обычно это требуется на контроллере домена или сервере терминалов. По умолчанию большинство систем Windows 2000, как представляется, ограничены максимальным размером пула на странице 160 МБ. Это можно проверить, скачав отладчики ядра с общедоступного веб-сайта и открыв дамп ядра в отладчике, который вы хотите использовать. Используется команда !vm . Например, отображается выстраивный пул размером не более 163840 КБ. При добавлении этого значения уменьшается количество записей таблицы страниц (PTE), доступных в системе, и в Windows 2000 до 343 МБ. В Windows Server 2003 максимальный размер пула можно увеличить до большего значения.

      Значения пула по умолчанию и максимальное число страничных пулов для Windows Server 2003 намного больше, чем в Windows 2000. Как правило, значения Windows Server 2003 по крайней мере на 50 процентов выше значений в Windows 2000. Эти большие значения делают более маловероятным, что вы будете сталкиваться с проблемой, из-за которой значения страничного пула влияют на проблему, описанную в этой статье. Однако по-прежнему возможно, что эта проблема может возникнуть.

    • Это значение ограничивает доступные системные PTEs. PTEs — это еще один несвязанный системный ресурс, который используется вашей системой. Этот параметр может привести к неожиданной остановке операционной системы и отображению ошибки остановки 0x3F на синем экране при запуске. После этого можно выполнить восстановление с помощью параметра Последний известный хороший перезапуск в меню перезагрузки системы или консоли восстановления. Используйте Монитор производительности для просмотра счетчика "Бесплатные записи таблицы системных страниц". Вы можете добавить параметр PagePoolSize , если наблюдаемые бесплатные значения имеют более 40 000.

    • Если вы используете /3 ГБ и /PAE вместе, не устанавливайте этот параметр без расширенного тестирования, прежде чем точно определить, сколько системных PTES необходимо иметь в вашей среде. Вы, вероятно, увидите значения в диапазоне от 10 000 до 20 000 бесплатных. Используйте статьи, чтобы настроить память пула на странице, но никогда не опускается ниже 10 000 бесплатных системных PTE. Если вы используете параметр /3 ГБ, не устанавливайте для этого параметра любое другое значение. Поддерживаются только значения 0, 0A000000 и FFFFFFFFFF.

  8. Закройте редактор реестра.

  9. Restart your computer.

Windows NT 4.0

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в соответствующей статье базы знаний Майкрософт:
322756 Создание резервной копии и восстановление реестра Windows

Примечание.

Необходимо использовать Windows NT 4.0 с пакетом обновления 6a.

Устранение первой проблемы

  1. Запустите редактор реестра (Regedt32.exe).

  2. Найдите и откройте следующий подраздел реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory_Management

  3. В меню Правка щелкните пункт Добавить значение, а затем добавьте следующее значение реестра:
    Имя значения: UnusedFileCache
    Тип данных: REG_DWORD
    Radix: Decimal
    Значение данных: 15

    Примечание.

    Это число представляет процент пула, который может быть использован неиспользуемыми сегментами. Значение 0 указывает, что система будет использовать поведение по умолчанию, аналогичное Windows NT 4.0 с пакетом обновления 3 (SP3). Значение от 5 до 40 указывает, что система обрезает неиспользуемый кэш файлов в зависимости от использования пула. 5 является наиболее агрессивным (т. е. увеличивает размер кэша меньше всего), а 40 — наименее агрессивным (т. е. позволяет кэшу увеличиваться до того, как он обрезает кэш).)

    Важно!

    • Используйте значение 15 в качестве начального значения. Если резервное копирование не выполнено, используйте значение 5 в качестве значения. Если это не сработает, необходимо либо изменить поведение программы резервного копирования, чтобы уменьшить потребность в выстраиваемом пуле, либо выполнить обновление до Windows 2000, где доступно более чем в два раза (дополнительные сведения см. в разделе "Windows 2000"). Если это значение работает, может потребоваться увеличить его примерно на 20 процентов, пока резервное копирование не будет неудачным. Если резервное копирование не выполнено, используйте второй параметр реестра, описанный в этой статье.

    • Если вы используете параметр /3 ГБ, используйте значение 5 в качестве начального параметра.

  4. Закройте редактор реестра.

  5. Restart your computer.

Так как эти параметры необходимо протестировать во время самых напряженных резервных копий, вам может потребоваться подождать месяц, чтобы завершить весь цикл резервного копирования, если вы не уверены, какое резервное копирование потребляет больше всего ресурсов. Поэтому корпорация Майкрософт рекомендует сначала протестировать низкие значения.

Устранение второй проблемы

Одним из возможных решений является ограничение резервной копии, чтобы создать резервную копию по одному файлу за раз. Он может работать или не работать в зависимости от размеров файлов для резервного копирования. (Ожидается, что он будет работать с файлами размером менее 180 гигабайт [ГБ].) Вы также можете попробовать это разрешение, если выполняется резервное копирование нескольких больших файлов, но размер каждого файла превышает 180 ГБ. Выполните действия, чтобы устранить первую проблему. Для файлов размером более 180 ГБ обходного решения не существует. Поэтому необходимо обновить систему до Windows 2000. При попытке удаленного резервного копирования системы в качестве обходного решения возникнет та же проблема.

  1. Запустите редактор реестра (Regedt32.exe).

  2. Найдите и откройте следующий подраздел реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory_Management

  3. В меню Правка щелкните пункт Добавить значение, а затем добавьте следующее значение реестра:
    Имя значения: DisablePagedPoolHint
    Тип данных: REG_DWORD
    Radix: Decimal
    Значение данных: 1

  4. Закройте редактор реестра.

  5. Restart your computer.

Состояние

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Применимо к».

Дополнительная информация

NTBackupread и NTBackupwrite используют буферный ввод-вывод. Это означает, что Windows NT кэширует операции ввода-вывода, выполняемые в потоке. Это также единственный API, который выполняет резервное копирование метаданных файла. Этот кэш извлекается из ограниченных ресурсов: пула и не погашенного пула. Из-за этого большое количество файлов или файлов может привести к нехватке ресурсов пула.

Некоторые факторы могут истощить объем памяти для страничного пула. Вы можете включить добавление тегов пула и использовать poolsnaps их через разные интервалы времени, чтобы понять, какой драйвер истощает память для страничного пула. poolsnaps Если указывает, что тег MmSt (прототип объектов mm section objectptEs) является крупнейшим потребителем и превышает 80 МБ, на сервере, вероятно, открыто большое количество файлов.

Возможный максимальный объем памяти пула на странице на компьютере составляет 343 МБ для страничного пула в Windows 2000 с параметром FFFFFFFF ИЛИ 164 МБ, если ключ отсутствует. Возможный максимальный объем памяти пула с страницей составляет 192 МБ в Windows NT. По умолчанию диспетчер памяти пытается обрезать выделенную память страничного пула, когда система достигает 80 процентов общего выстраивного пула. Например, 80 процентов из 343 МБ составляет 274 МБ. Если диспетчеру памяти не удается выполнить обрезку достаточно быстро, чтобы не отставать от спроса, может возникнуть событие, указанное в разделе "Симптомы" этой статьи. Если вы настроите диспетчер памяти для запуска процесса обрезки раньше (например, когда он достигает 40 процентов), компьютер может не отставать от потребности в погаженном пуле во время внезапного пикового использования, чтобы не иссякнул объем памяти постраничного пула.

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.