次の方法で共有


大規模なシステム ボリュームをバックアップすると、バックアップ プログラムが失敗する

この記事では、大規模なシステム ボリュームをバックアップするときにバックアップ プログラムが失敗する問題の解決策について説明します。

元の KB 番号: 304101

現象

NTBackup.exeを使用するか、NT Backup API を使用するサードパーティのバックアップ プログラムを使用してバックアップを作成しようとすると、バックアップが正常に完了しない可能性があります。 この動作は、サーバー上でプログラムをローカルで実行した場合でも発生する可能性があります。 さらに、次の現象の 1 つ以上が発生する可能性があります。

  • アプリケーション ログに次の 1 つ以上のエラー メッセージが表示されます。
    エラー メッセージ 1

    エラー 1450: 要求されたサービスを完了するためのシステム リソースが不足しています。

    エラー 1450: / 16 進0x5aa ERROR_NO_SYSTEM_RESOURCES

    オペレーティング システム エラー 1450 要求されたサービスを完了するためのシステム リソースが不足しています。

    "デバイス" への書き込みに失敗しました。状態 = 1450

    エラー メッセージ 2

    エラー 1130: このコマンドを処理するのに十分なサーバー 記憶域がありません。

    エラー 1130 / 16 進0x46a ERROR_NOT_ENOUGH_SERVER_MEMORY

    バックアップまたは復元操作が異常終了する。

  • イベント ID 2020 およびイベント ID 2021 メッセージは、サーバー サービスによって生成される場合があります。

    Note

    通常、イベント ID 2020 とイベント ID 2021 のメッセージは表示されません。

  • Hewlett-Packard (HP) OmniBack バックアップ プログラムを実行している場合は、次のようなエラー メッセージが表示されることがあります。

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

    オフセット 436176408(:1) で 57256 バイトを読み取ることができません: ([1450]
    要求されたサービスを完了するためのシステム リソースが不足しています。

  • Windows タスク マネージャーで Performance タブを表示すると、非ページ カーネル メモリが不足していることがわかります。

Note

この記事で説明する問題に関連しない理由により、これらのエラー メッセージが表示されることがあります。 大規模なシステム ボリュームをバックアップする場合にのみこれらのエラー メッセージが表示される場合、最も可能性の高い原因は、この記事で説明する 2 つの原因です。

この問題が発生しているかどうかを判断するには、Windows タスク マネージャーを起動し、 Performance タブをクリックします。右下にある Kernel Memory (K) 領域を探し、 Paged の値を書き留めます。 この値が約 160 メガバイト (MB) に達すると、Microsoft Windows 2000 または Microsoft Windows NT 4.0 でこの問題が発生する可能性があります。 または、この値が 160 MB を超えると、Microsoft Windows Server 2003 でこの問題が発生する可能性があります。 ページングされたプール メモリのレジストリ キーを高い値に設定した場合、ページ プール メモリの値がはるかに大きくなるまで、この問題は発生しません (ページ プール メモリの使用量が設定値の約 80% に達したときに問題が発生する可能性があります)。 プール タグの gflags 設定が有効になっていて、Poolmon ユーティリティを使用している場合は、MmSt タグの使用率が高くなります。 共有ファイルの追跡に使用されるオペレーティング システム メモリをマップするために使用されるプール タグです。

原因

この問題の 2 つの原因が関連しています。 より頻繁な原因が最初に一覧表示されます。

  • メモリ キャッシュ マネージャーが処理できるファイル数よりも多くのファイルが開いています。 その結果、キャッシュ マネージャーは使用可能なページ プール メモリを使い果たしました。

  • バックアップ プログラムは、バックアップ API がそのバージョンのオペレーティング システムでアクセスできるサイズを超えるファイルをバックアップしようとしました。 同じ結果になります (つまり、ページ プールが使い果たされています)。

    Note

    この 2 つ目の問題は、Microsoft Windows NT 4.0 ベースのコンピューターで発生する可能性が高くなります。

各問題の解決方法は、Windows Server 2003、Microsoft Windows 2000、または Windows NT 4.0 で問題が発生するかどうかによって異なります。

解決方法

Windows Server 2003 と Windows 2000

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、次の記事の番号をクリックして表示される Microsoft サポート技術情報の記事を参照してください。
322756 Windows でレジストリをバックアップおよび復元する方法

2 つのレジストリ設定を変更する必要がある場合があります。 常に最初の設定を変更します。 システムの構成によっては、2 番目の設定を変更する必要がある場合もあります。

レジストリ設定 1

  1. Startをクリックし、Run をクリックし、Open ボックスに「regedit」と入力して、[OK] をクリック

  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。

  4. エントリ名として「PoolUsageMaximum」と入力し、Enter キーを押します。

  5. PoolUsageMaximum を右クリックし、Modify をクリックします。

  6. [decimalクリックします。

  7. [データの ボックスに「60」と入力し、[ OK] をクリック

    重要

    • 初期値として 60 を使用します。 バックアップが成功しない場合は、値として 40 を使用します。 これが機能しない場合は、ページ プールの需要を減らすために、バックアップ プログラムの動作を変更する必要があります。 この値が機能する場合は、バックアップが機能しないまで値を約 25% 増やしたい場合があります。 バックアップが失敗した場合は、この記事で説明する 2 番目のレジストリ設定を使用します。
    • このレジストリ設定の値が 60 以下であることを確認します。
    • /3GB スイッチを使用している場合は、初期設定として 40 を使用します。 この値はパーセンテージ値であることに注意してください。
  8. レジストリ エディターを終了します。

  9. コンピューターを再起動します。

最も負荷の高いバックアップ中にこれらの設定をテストする必要があるため、どのバックアップで最も多くのリソースが消費されているかが不明な場合は、バックアップ サイクル全体が完了するまで 1 か月待たなければならない場合があります。 このような状況のため、まず低い値をテストすることをお勧めします。 詳細については、次の記事の番号をクリックして表示される Microsoft サポート技術情報の記事を参照してください。

312362 サーバーがシステム ページ プールからメモリを割り当てることができません

レジストリ設定 2

  1. [開始] をクリックし[実行] をクリックし、[開く] ボックスに「regedit」と入力して、[OK] をクリックします。

  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. [編集] メニューの [ New] をポイントし、[ DWORD 値をクリックします。

  4. エントリ名として「PagedPoolSize」と入力し、Enter キーを押します。

  5. PagedPoolSizeを右クリックし、[ Modify] をクリックします。

  6. [ Hexadecimal をクリックします。

  7. [値の値 ボックスに FFFFFFFF の値を入力し、[OK] をクリック

    重要

    • PagedPoolSize を 0xFFFFFFFF (-1) に設定すると、他のリソースではなく、最大ページング プールがコンピューターに割り当てられます。 これは通常、ドメイン コントローラーまたはターミナル サーバーで必要です。 既定では、ほとんどの Windows 2000 システムは、ページ プールの最大サイズが 160 MB に制限されているように見えます。 これを確認するには、パブリック Web サイトからカーネル デバッガーをダウンロードし、使用するデバッガーでカーネル ダンプを開きます。 使用するコマンドは !vm です。 たとえば、最大 163840 KB のページ プールが表示されます。 この値を追加すると、システムで使用可能なページ テーブル エントリ (PTEs) が減り、Windows 2000 ではページ プールが最大 343 MB に拡張されます。 ページ プールの最大サイズは、Windows Server 2003 で大きな値に拡張できます。

      Windows Server 2003 の既定および最大ページ プール値は、Windows 2000 よりもはるかに大きくなります。 通常、Windows Server 2003 の値は、Windows 2000 の値より少なくとも 50% 高くなります。 これらの値を大きくすると、ページ プールの値がこの記事で説明されている問題の一因となる問題が発生する可能性が高くなります。 ただし、この問題が発生する可能性があります。

    • この値により、使用可能なシステム PTEs が制限されます。 PTEs は、システムが使用するもう 1 つの関連のないシステム リソースです。 この設定により、オペレーティング システムが予期せず停止し、起動時に停止0x3Fエラーがブルー スクリーンに表示されることがあります。 システムの再起動メニューまたは回復コンソールの Last Known Good restart オプションを使用して、このオプションから回復できます。 パフォーマンス モニターを使用して、Free システム ページ テーブル エントリカウンターを表示します。 観察された空き値が 40,000 を超える場合は、 PagePoolSize 設定を追加できます。

    • /3 GB と /PAE を一緒に実行している場合は、広範なテストを行わずに、環境に必要なシステム PTES の数を正確に確立する前に、この設定を設定しないでください。 10,000 ~ 20,000 free の範囲の値が表示される可能性があります。 この記事を使用して、ページ プール メモリを構成しますが、10,000 個の空きシステム PTEs を下回ることはありません。 /3GB スイッチを使用している場合は、この値を他の値に設定しないでください。 サポートされる値は、0、0A000000、および FFFFFF のみです。

  8. レジストリ エディターを終了します。

  9. コンピューターを再起動します。

Windows NT 4.0

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、次の記事の番号をクリックして表示される Microsoft サポート技術情報の記事を参照してください。
322756 Windows でレジストリをバックアップおよび復元する方法

Note

Windows NT 4.0 Service Pack 6a を使用している必要があります。

最初の問題を解決する

  1. レジストリ エディター (Regedt32.exe) を起動します。

  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory_Management

  3. [ Edit メニューの Add Value をクリックし、次のレジストリ値を追加します。
    値の名前: UnusedFileCache
    値の種類: REG_DWORD
    基数: 10 進数
    値データ: 15

    Note

    この数は、未使用のセグメントで使用できるプールの割合を表します。 値 0 は、システムが Windows NT 4.0 Service Pack 3 のような既定の動作を使用することを示します。 5 ~ 40 の値は、プールの使用状況に基づいて、システムが未使用のファイル キャッシュをトリミングすることを示します。 5 は最もアグレッシブです (つまり、キャッシュのサイズを最小限に増やします)、40 が最もアグレッシブです (つまり、キャッシュをトリミングする前にキャッシュを最大に拡大できます)。

    重要

    • 初期値として 15 を使用します。 バックアップが成功しない場合は、値として 5 を使用します。 これが機能しない場合は、ページ プールの需要を減らすためにバックアップ プログラムの動作を変更するか、ページ プールの 2 倍以上の Windows 2000 にアップグレードする必要があります (詳細については、「Windows 2000」セクションを参照してください)。 この値が機能する場合は、バックアップが失敗するまで約 20% 増やします。 バックアップが失敗した場合は、この記事で説明する 2 番目のレジストリ設定を使用します。

    • /3GB スイッチを使用している場合は、初期設定として 5 を使用します。

  4. レジストリ エディターを終了します。

  5. コンピューターを再起動します。

最も負荷の高いバックアップ中にこれらの設定をテストする必要があるため、どのバックアップで最も多くのリソースが消費されているかが不明な場合は、バックアップ サイクル全体が完了するまで 1 か月待たなければならない場合があります。 そのため、まず低い値をテストすることをお勧めします。

2 番目の問題を解決する

考えられる解決策の 1 つは、一度に 1 つのファイルをバックアップするようにバックアップを制限することです。 バックアップするファイルのサイズによっては、動作する場合と機能しない場合があります。 (180 ギガバイト [GB] 未満のファイルで動作することが予想されます)。複数の大きなファイルをバックアップしているが、各ファイルが 180 GB より小さい場合は、この解決策を試すこともできます。 手順に従って、最初の問題も解決します。 180 GB を超えるファイルの場合、回避策は存在しません。 そのため、システムを Windows 2000 にアップグレードする必要があります。 回避策としてシステムをリモートでバックアップしようとすると、同じ問題が発生します。

  1. レジストリ エディター (Regedt32.exe) を起動します。

  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory_Management

  3. [ Edit メニューの Add Value をクリックし、次のレジストリ値を追加します。
    値の名前: DisablePagedPoolHint
    値の種類: REG_DWORD
    基数: 10 進数
    値のデータ: 1

  4. レジストリ エディターを終了します。

  5. コンピューターを再起動します。

状態

Microsoft は、「適用対象」セクションに記載されている Microsoft 製品の問題であることを確認しました。

詳細

NTBackupread と NTBackupwrite はどちらもバッファー I/O を使用します。 これは、Windows NT がストリームに対して実行される I/O をキャッシュすることを意味します。 また、ファイルのメタデータをバックアップする唯一の API でもあります。 このキャッシュは、限られたリソース (つまり、プールと非ページ プール) からプルされます。 このため、多数のファイルまたはファイルが大きくなると、プール リソースが不足する可能性があります。

ページ プール メモリの供給が不足する要因がいくつかあります。 プールのタグ付けを有効にし、異なる時間間隔で poolsnaps して、ページプールメモリを使い果たすドライバーを理解するのに役立ちます。 mmSt タグ (Mm セクション オブジェクト プロトタイプ PTEs) が最大のコンシューマーであり、80 MB を超える poolsnaps が示されている場合は、サーバー上で多数のファイルが開かれている可能性があります。

コンピューター上で使用可能な最大ページング プール メモリは、Windows 2000 のページ プールの 343 MB で、ページ プール キーが FFFFFFFF に設定されている場合は 164 MB です。キーが存在しない場合は 164 MB です。 可能な最大ページング プール メモリは、Windows NT では 192 MB です。 既定では、システムがページ プールの合計の 80% に達すると、メモリ マネージャーは割り当てられたページ プール メモリのトリミングを試みます。 たとえば、343 MB の 80% は 274 MB です。 メモリ マネージャーが需要に対応するのに十分な速度でトリミングできない場合は、この記事の「現象」セクションに記載されているイベントが発生する可能性があります。 前にトリミング プロセスを開始するようにメモリ マネージャーを調整すると (たとえば、40% に達した場合)、急激なピーク使用時に、ページ プールの需要にコンピューターが追いついて、ページングされたプール メモリが不足しないようにすることができます。

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 Microsoft は、これらの製品のパフォーマンスまたは信頼性に関して、黙示的またはその他の方法で一切の保証を行いません。