次の方法で共有


Windows のフリーズに関する高度なトラブルシューティング

この記事では、Windows ベースのコンピューターとサーバーのフリーズの問題をトラブルシューティングする方法について説明します。 また、管理者またはソフトウェア開発者がこれらの問題を診断、特定、修正するのに役立つデータを収集する方法も提供します。

Note

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

適用対象: Windows 10

問題を特定する

  • どのコンピューターがフリーズしていますか? たとえば、影響を受けるコンピューターは物理サーバーまたは仮想サーバーです。
  • フリーズした場合、どのような操作が発生しましたか? たとえば、この問題はシャットダウン時に発生します。
  • エラーはどのくらいの頻度で発生しますか? たとえば、この問題は毎晩午後 7 時に発生します。
  • このフリーズは何個のコンピューターで発生しますか? たとえば、すべてのコンピューター、または 1 台のコンピューターのみなどです。

フリーズの問題のトラブルシューティング

フリーズの問題をトラブルシューティングするには、コンピューターの現在の状態を確認し、次のいずれかの方法に従います。

まだフリーズ状態で実行されているコンピューターの場合

物理コンピューターまたは仮想マシンがまだフリーズしている場合は、次の 1 つ以上の方法を使用してトラブルシューティングを行います。

  • リモート デスクトップ接続を介してコンピューターにアクセスしてみてください。
  • ドメイン アカウントまたはローカル管理者アカウントを使用して、ハードウェア製造元のリモート アクセス ソリューションを使用してコンピューターにサインインします。 たとえば、Dell リモート アクセス カード (DRAC)、HP Integrated Lights-Out (iLo)、IBM Remote Supervisor Adapter (RSA) などです。
  • コンピューターへの ping をテストします。 破棄されたパケットと高いネットワーク待ち時間を探します。
  • \ServerName\c$などの管理共有にアクセスします。
  • Ctrl キーを押しながら Alt キーを押しながら Delete キーを押し、応答を確認します。
  • Windows リモート管理ツールを使用してみます。 たとえば、コンピューターの管理、サーバー マネージャー、Wmimgmt.msc などです。

フリーズしなくなったコンピューターの場合

物理コンピューターまたは仮想マシンがフリーズしても、現在は良好な状態で実行されている場合は、次の 1 つ以上の方法を使用してトラブルシューティングを行います。

物理コンピューターの場合

  • 問題が発生しているコンピューターのシステム ログとアプリケーション ログを確認します。 イベント ログで関連するイベント ID を確認します。

    • アプリケーション イベント ログ: クラッシュまたは関連するシステム プロセスを示すアプリケーション エラー
    • システム イベント ログ、重要なシステム サービスの Service Control Manager エラー イベント ID
    • ソース Srv/Server でのエラー イベント ID 2019/2020
  • perfmon /reportを実行してシステム診断レポートを生成します。

仮想マシンの場合

  • 問題が発生しているコンピューターのシステム ログとアプリケーション ログを確認します。
  • perfmon /reportを実行してシステム診断レポートを生成します。
  • 仮想管理監視ツールでシステムの履歴を確認します。

フリーズの問題のデータを収集する

サーバーフリーズのデータを収集するには、次の表を確認し、推奨される方法を 1 つ以上使用します。

コンピューターの種類と状態 データ収集方法
フリーズ状態で実行されている物理コンピューター メモリ ダンプ ファイルを使用してデータを収集します。 または、方法 2、3、または 4 を使用します。 これらのメソッドについては、このセクションの後半で説明します。
フリーズしなくなった物理コンピューター 方法 1、2、3、または 4 を使用します。 これらのメソッドについては、このセクションの後半で説明します。 また、プール モニター 使用してデータを収集します
フリーズ状態で実行されている仮想マシン Hyper-V または VMware: メモリ ダンプ ファイルを使用して、フリーズ状態で実行されている仮想マシンのデータを収集します
XenServer: 方法 1、2、3、または 4 を使用します。 これらのメソッドについては、このセクションの後半で説明します。
フリーズしなくなった仮想マシン 方法 1、2、3、または 4 を使用します。 これらのメソッドについては、このセクションの後半で説明します。

方法 1: メモリ ダンプ

重要

慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。

完全なメモリ ダンプ ファイルは、コンピューターが予期せず停止したときに、システム メモリのすべての内容を記録します。 完全なメモリ ダンプ ファイルには、メモリ ダンプ ファイルの収集時に実行されていたプロセスのデータが含まれている場合があります。

コンピューターがフリーズしなくなり、現在は良好な状態で実行されている場合は、次の手順を使用してメモリ ダンプを有効にして、フリーズの問題が再び発生したときにメモリ ダンプを収集できるようにします。 仮想マシンがまだフリーズ状態で実行されている場合は、次の手順を使用してメモリ ダンプを有効にして収集します。

Note

コンピューターで有効になっている再起動機能 (Compaq コンピューターの自動システム再起動 (ASR) 機能など) がある場合は、無効にします。 通常、この設定は BIOS で見つかります。 この機能を有効にすると、BIOS がオペレーティング システムからのハートビートを検出しない場合は、コンピューターが再起動されます。 再起動によってダンプ プロセスが中断される可能性があります。

  1. 完全なメモリ ダンプ ファイルを取得するようにコンピューターが設定されていることを確認します。

    1. Run に移動し、「Sysdm.cpl」と入力し、Enter キーを押します。
    2. System のプロパティAdvanced タブで、Performance>Settings>Advanced を選択します。 Change を選択して、仮想メモリを確認または変更します。
    3. Startup and Recovery の System Properties>Advanced>Settings に戻ります
    4. [デバッグ情報の書き込み] セクションで、[メモリ ダンプcomplete を選択
    5. 既存のファイルをコピーしますを選択します。
    6. システム ドライブにページング ファイル (pagefile.sys) があり、インストールされている RAM (初期サイズと最大サイズ) で 100 MB 以上であることを確認します。
    7. システム ドライブに物理 RAM よりも多くの空き領域があることを確認します。
  2. システムがキーボードを使用してダンプ ファイルを生成できるようにするには、 CrashOnCtrlScroll レジストリ値を有効にします。

    1. レジストリ エディターを開き、次のレジストリ キーを見つけます。

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. 2 つのレジストリ キーに次の CrashOnCtrlScroll レジストリ エントリを作成します。

      • 値の名前: CrashOnCtrlScroll
      • データ型: REG_DWORD
      • 値: 1
    3. レジストリ エディターを閉じて、コンピューターを再起動します。

  3. 以前のバージョンの Windows を実行している一部の物理コンピューターでは、DRAC、iLo、RSA などの Web インターフェイス機能から、作成不可能な中断 (NMI) が生成される場合があります。 ただし、既定では、この設定はメモリ ダンプを作成せずにシステムを停止します。

    Note

    現在サポートされているバージョンの Windows では、 NMICrashDump レジストリ キーは不要になりました。 NMI により、メモリ ダンプ データ収集の後に Stop エラーが発生します

  4. コンピューターで問題が発生したら、右の Ctrl キーを押しながらスクロール ロック キーを 2 回押すと、メモリ ダンプ ファイルが生成されます。

    Note

    既定では、ダンプ ファイルは次のパスにあります: %SystemRoot%\MEMORY。DMP

方法 2: データサニティ チェック

ダンプ チェック ユーティリティ (Dumpchk.exe) を使用してメモリ ダンプ ファイルを読み取る。 また、ファイルが正しく作成され、破損または無効でないことを確認することもできます。

Dumpchk.exeを使用してダンプ ファイルを確認する方法について説明します。

方法 3: パフォーマンス モニター

Windows パフォーマンス モニターを使用すると、実行するプログラムがコンピューターのパフォーマンスに与える影響をリアルタイムで調べたり、後で分析するためにログ データを収集したりして調べることができます。 ローカル システムとリモート システムでパフォーマンス カウンターとイベント トレース ログコレクションを作成するには、管理者としてコマンド プロンプトで次のコマンドを実行します。

Logman create counter LOGNAME_Long -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:05:00
Logman create counter LOGNAME_Short -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:00:10

次のコマンドを実行して、ログを開始または停止できます。

logman start LOGNAME_Long / LOGNAME_Short
logman stop LOGNAME_Long / LOGNAME_Short

パフォーマンス モニター ログは、パス C:\PERFLOGS にあります。

データを収集するその他の方法

メモリ ダンプを使用して、フリーズ状態で実行されている物理コンピューターのデータを収集する

警告

慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。

物理コンピューターがまだフリーズ状態で実行されている場合は、次の手順に従ってメモリ ダンプを有効にして収集します。

  1. コンピューターが完全なメモリ ダンプ ファイルを取得するように設定されていること、およびネットワーク経由でアクセスできることを確認します。

    Note

    影響を受けるコンピューターにネットワーク経由でアクセスできない場合は、NMI を介してメモリ ダンプ ファイルを生成してみてください。 次の設定の一部が修飾されていない場合、アクションの結果でメモリ ダンプ ファイルが収集されない可能性があります。

    1. 任意の方法でコンピューターのデスクトップにアクセスしてみてください。

      Note

      OS にアクセスできない場合は、コンピューター上のレジストリ エディターにリモートでアクセスしてみてください。 その後、コンピューターが現在構成されているメモリ ダンプ ファイルとページ ファイルの種類を確認できます。

    2. 同じネットワークとサブネットにあるリモート コンピューターから、 Registry Editor>Connect Network Registry に移動します。 次に、影響を受けるコンピューターに接続し、次の設定を確認します。

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\CrashDumpEnabled

        CrashDumpEnabled レジストリ エントリが1であることを確認します。

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\NMICrashDump

        一部の物理サーバーでは、 NMICrashDump レジストリ エントリが存在し、その値が 1 である場合は、DRAC、iLo、RSA などのリモート管理プロバイダーから NMI を利用できます。

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles and ExistingPageFiles

        Pagefile レジストリ エントリの値がシステム管理の場合、サイズはレジストリに反映されません。 たとえば、?:\pagefile.sys) のように指定します。

        ページ ファイルがカスタマイズされている場合、サイズはレジストリに反映されます ( ?:\pagefile.sys 1024 1124など)。 この例では、1024 は初期サイズ、1124 は最大サイズです。

        Note

        サイズがレジストリに反映されていない場合は、ページ ファイルがある管理共有にアクセスしてみてください。 たとえば、 \\ServerName\C$

    3. コンピューターのシステム ドライブにページング ファイル (pagefile.sys) があり、インストールされている RAM を介して 100 MB 以上であることを確認します。

    4. コンピューターのハード ディスク ドライブには、物理 RAM よりも多くの空き領域があることを確認します。

  2. コンピューターで CrashOnCtrlScroll レジストリ値を有効にして、システムがキーボードを使用してダンプ ファイルを生成できるようにします。

    1. 同じネットワークとサブネット内のリモート コンピューターから、 Registry Editor>Connect Network Registry に移動します。 影響を受けるコンピューターに接続し、次のレジストリ キーを見つけます。

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. 2 つのレジストリ キーに次の CrashOnCtrlScroll レジストリ エントリを作成します。

      値の名前: CrashOnCtrlScroll データ型: REG_DWORD 値: 1

    3. レジストリ エディターを閉じて、コンピューターを再起動します。

  3. コンピューターで問題が発生したら、右の Ctrl キーを押しながらスクロール ロック キーを 2 回押すと、メモリ ダンプが生成されます。

    Note

    既定では、ダンプ ファイルはパス %SystemRoot%\MEMORY にあります。DMP

プール モニターを使用して、フリーズしなくなった物理コンピューターのデータを収集する

プール モニターには、プールの種類別の割り当て数と未処理バイト数と、ExAllocatePoolWithTag の呼び出しに渡されるタグが表示されます。

詳細については、「 PoolMon を使用したカーネル モード メモリ リークの検出 および PoolMon の例を参照してください。

メモリ ダンプを使用して、フリーズ状態で実行されている仮想マシンのデータを収集する

仮想マシンが実行されているアプリケーションには、次のいずれかの方法を使用します。

Microsoft Hyper-V

Debug-VM コマンドレットを使用して、組み込みの NMI 機能を使用してデバッグし、メモリ ダンプを取得することもできます。

Hyper-V で仮想マシンをデバッグするには、Windows PowerShell で次のコマンドレットを実行します。

Debug-VM -Name "VM Name" -InjectNonMaskableInterrupt -ComputerName Hostname  

VMware

VMware スナップショットを使用するか、状態を中断し、完全なメモリ ダンプ ファイルと同等のメモリ ダンプ ファイルを抽出できます。 VMware の Checkpoint To Core Tool (vmss2core) を使用して、中断 (.vmss) 状態ファイルとスナップショット (.vmsn) 状態ファイルの両方をダンプ ファイルに変換します。 次に、標準の Windows デバッグ ツールを使用してファイルを分析します。

Note

Microsoft サポートを使用する場合は、VMware スナップショットを Microsoft にアップロードする前に、VMware の Checkpoint To Core Tool (vmss2core) を使用して、VMware スナップショットをダンプ ファイルに変換する必要があります。 スナップショット変換で問題が発生した場合は、VMware に問い合わせてサポートを受けます。

Citrix XenServer

メモリ ダンプ プロセスは、右 Ctrl + スクロール ロック + スクロール ロック キーボードの組み合わせを押すことによって発生します。 詳細については、「 XenServer上で実行されているWindows仮想マシンからメモリダンプをトリガーする方法 Citrixの方法1」を参照してください。

Windows Server のシステム ドライブの領域制限

Windows Server では、システム ボリュームに完全なメモリ ダンプ ファイルを生成するのに十分な空きディスク領域がない可能性があります。

システム ドライブに十分な領域がない場合は、2 つ目のオプションがあります。 DedicatedDumpFile レジストリ エントリを使用できます。 詳細については、「 メモリ ダンプの宛先パスを構成するを参照してください。

詳細については、「 DedicatedDumpFile レジストリ値を使用してシステム ドライブの領域制限を克服する方法を参照してください。

サードパーティのお問い合わせ窓口に関する免責事項

サードパーティのお問い合わせ窓口に関する情報は、ユーザーの便宜のために提供されているものであり、 この連絡先情報は、予告なしに変更される可能性があります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。