Windows 고정에 대한 고급 문제 해결

이 문서에서는 Windows 기반 컴퓨터 및 서버의 동결 문제를 해결하는 방법을 설명합니다. 또한 관리자 또는 소프트웨어 개발자가 이러한 문제를 진단, 식별 및 해결하는 데 도움이 되는 데이터를 수집하는 방법을 제공합니다.

참고

이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

적용 대상: Windows 10

문제 식별

  • 어떤 컴퓨터가 얼어 붙나요? 예를 들어 영향을 받는 컴퓨터는 물리적 서버 또는 가상 서버입니다.
  • 동결되었을 때 어떤 작업이 발생합니까? 예를 들어 이 문제는 종료할 때 발생합니다.
  • 오류는 얼마나 자주 발생합니까? 예를 들어 이 문제는 매일 밤 7시에 발생합니다.
  • 이 동결이 발생하는 컴퓨터는 몇 대입니까? 예를 들어 모든 컴퓨터 또는 하나의 컴퓨터만 있습니다.

동결 문제 해결

고정 문제를 해결하려면 컴퓨터의 현재 상태 검사 다음 방법 중 하나를 따릅니다.

여전히 고정된 상태로 실행 중인 컴퓨터의 경우

실제 컴퓨터 또는 가상 머신이 여전히 고정되어 있는 경우 문제 해결을 위해 다음 방법 중 하나 이상을 사용합니다.

  • 원격 데스크톱 연결을 통해 컴퓨터에 액세스합니다.
  • 도메인 계정 또는 로컬 관리자 계정을 사용하여 하드웨어 제조업체의 원격 액세스 솔루션으로 컴퓨터에 로그인합니다. 예를 들어 DELL DRAC(원격 액세스 카드), HP iLo(통합 Lights-Out) 또는 IBM RSA(원격 감독자 어댑터)가 있습니다.
  • 컴퓨터에 대한 ping을 테스트합니다. 삭제된 패킷과 높은 네트워크 대기 시간을 찾습니다.
  • 관리 공유에 액세스합니다(예: \\ServerName\c$).
  • Ctrl+Alt+Delete를 누르고 응답을 검사.
  • Windows 원격 관리 도구를 사용해 보세요. 예를 들어 컴퓨터 관리, 서버 관리자 및 Wmimgmt.msc입니다.

더 이상 고정되지 않은 컴퓨터의 경우

실제 컴퓨터 또는 가상 머신이 중지되었지만 현재 양수 상태로 실행 중인 경우 문제 해결을 위해 다음 방법 중 하나 이상을 사용합니다.

실제 컴퓨터의 경우

  • 문제가 있는 컴퓨터에서 시스템 및 애플리케이션 로그를 검토합니다. 이벤트 로그에서 관련 이벤트 ID를 확인합니다.

    • 애플리케이션 이벤트 로그: 크래시 또는 관련 시스템 프로세스를 제안하는 애플리케이션 오류
    • 시스템 이벤트 로그, 중요한 시스템 서비스에 대한 Service Control Manager 오류 이벤트 ID
    • 원본 Srv/Server를 사용하는 오류 이벤트 ID 2019/2020
  • 를 실행 perfmon /report하여 시스템 진단 보고서를 생성합니다.

가상 머신의 경우

  • 문제가 있는 컴퓨터에서 시스템 및 애플리케이션 로그를 검토합니다.
  • 를 실행 perfmon /report하여 시스템 진단 보고서를 생성합니다.
  • 가상 관리 모니터링 도구에서 시스템의 기록을 확인합니다.

동결 문제에 대한 데이터 수집

서버 고정에 대한 데이터를 수집하려면 다음 표를 검사 제안된 방법 중 하나 이상을 사용합니다.

컴퓨터 유형 및 상태 데이터 수집 방법
고정된 상태에서 실행되는 물리적 컴퓨터 메모리 덤프 파일을 사용하여 데이터를 수집합니다. 또는 메서드 2, 3 또는 4를 사용합니다. 이러한 메서드는 이 섹션의 뒷부분에 나와 있습니다.
더 이상 고정되지 않는 물리적 컴퓨터 메서드 1, 2, 3 또는 4를 사용합니다. 이러한 메서드는 이 섹션의 뒷부분에 나와 있습니다. 그리고 풀 모니터를 사용하여 데이터를 수집합니다.
고정된 상태에서 실행되는 가상 머신 Hyper-V 또는 VMware: 메모리 덤프 파일을 사용하여 고정된 상태에서 실행되는 가상 머신에 대한 데이터를 수집합니다.
XenServer: 메서드 1, 2, 3 또는 4를 사용합니다. 이러한 메서드는 이 섹션의 뒷부분에 나와 있습니다.
더 이상 고정되지 않는 가상 머신 메서드 1, 2, 3 또는 4를 사용합니다. 이러한 메서드는 이 섹션의 뒷부분에 나와 있습니다.

방법 1: 메모리 덤프

중요

주의를 기울여 이 절의 단계를 수행하십시오. 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 레지스트리를 수정하기 전에 문제가 발생할 경우에 대비하여 레지스트리를 복원 가능하도록 백업하세요.

컴퓨터가 예기치 않게 중지되면 전체 메모리 덤프 파일은 시스템 메모리의 모든 내용을 기록합니다. 전체 메모리 덤프 파일에는 메모리 덤프 파일이 수집될 때 실행 중인 프로세스의 데이터가 포함될 수 있습니다.

컴퓨터가 더 이상 고정되지 않고 현재 양호한 상태로 실행 중인 경우 다음 단계를 사용하여 메모리 덤프를 사용하도록 설정하여 고정 문제가 다시 발생할 때 메모리 덤프를 수집할 수 있습니다. 가상 머신이 여전히 고정된 상태로 실행 중인 경우 다음 단계를 사용하여 메모리 덤프를 사용하도록 설정하고 수집합니다.

참고

컴퓨터에서 사용하도록 설정된 다시 시작 기능(예: Compaq 컴퓨터의 ASR(자동 시스템 다시 시작) 기능)이 있는 경우 사용하지 않도록 설정합니다. 이 설정은 일반적으로 BIOS에서 찾을 수 있습니다. 이 기능을 사용하도록 설정하면 BIOS가 운영 체제에서 하트비트를 검색하지 못하면 컴퓨터가 다시 시작됩니다. 다시 시작은 덤프 프로세스를 중단할 수 있습니다.

  1. 컴퓨터가 전체 메모리 덤프 파일을 가져오기 위해 설정되어 있는지 확인합니다.

    1. 실행으로 이동하여 Sysdm.cpl입력한 다음 Enter 키를 누릅니다.
    2. 시스템 속성고급 탭에서 성능>설정>고급을 선택합니다. 변경을 선택하여 가상 메모리를 검사 변경합니다.
    3. 시작 및 복구에서 시스템 속성>고급>설정으로 돌아가기.
    4. 디버깅 정보 쓰기 섹션에서 메모리 덤프 완료를 선택합니다.
    5. 기존 파일 덮어쓰기를 선택합니다.
    6. 시스템 드라이브에 페이징 파일(pagefile.sys)이 있고 설치된 RAM(초기 및 최대 크기)을 통해 100MB 이상인지 확인합니다.
    7. 실제 RAM보다 시스템 드라이브에 사용 가능한 공간이 더 있는지 확인합니다.
  2. 시스템에서 키보드를 사용하여 덤프 파일을 생성할 수 있도록 하려면 레지스트리 값을 사용하도록 설정합니다 CrashOnCtrlScroll .

    1. 레지스트리 편집기 열고 다음 레지스트리 키를 찾습니다.

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. 두 레지스트리 키에 다음 CrashOnCtrlScroll 레지스트리 항목을 만듭니다.

      • 값 이름: CrashOnCtrlScroll
      • 데이터 형식: REG_DWORD
      • 값: 1
    3. 레지스트리 편집기 닫고 컴퓨터를 다시 시작합니다.

  3. 이전 버전의 Windows를 실행하는 일부 물리적 컴퓨터에서는 DRAC, iLo 또는 RSA와 같은 웹 인터페이스 기능에서 NMI(연결할 수 없는 중단)를 생성할 수 있습니다. 그러나 기본적으로 이 설정은 메모리 덤프를 만들지 않고 시스템을 중지합니다.

    참고

    현재 지원되는 Windows NMICrashDump 버전의 경우 레지스트리 키가 더 이상 필요하지 않습니다. NMI는 메모리 덤프 데이터 수집을 따르는 중지 오류를 발생합니다.

  4. 컴퓨터에서 문제가 발생하면 오른쪽 Ctrl 키를 누른 채 스크롤 잠금 키를 두 번 눌러 메모리 덤프 파일을 생성합니다.

    참고

    기본적으로 덤프 파일은 %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. 컴퓨터가 전체 메모리 덤프 파일을 가져오기 위해 설정되어 있고 네트워크를 통해 액세스할 수 있는지 확인합니다.

    참고

    네트워크를 통해 영향을 받는 컴퓨터에 액세스할 수 없는 경우 NMI를 통해 메모리 덤프 파일을 생성해 보세요. 다음 설정 중 일부가 정규화되지 않은 경우 작업의 결과는 메모리 덤프 파일을 수집하지 못할 수 있습니다.

    1. 어떤 방법을 통해 컴퓨터의 바탕 화면에 액세스하려고합니다.

      참고

      OS에 액세스할 수 없는 경우 컴퓨터의 레지스트리 편집기 원격으로 액세스합니다. 그런 다음 컴퓨터가 현재 구성된 메모리 덤프 파일 및 페이지 파일의 형식을 검사 수 있습니다.

    2. 동일한 네트워크 및 서브넷에 있는 원격 컴퓨터에서 레지스트리 편집기>네트워크 레지스트리 연결로 이동합니다. 그런 다음 영향을 받는 컴퓨터에 연결하고 다음 설정을 확인합니다.

      • 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는 최대 크기입니다.

        참고

        크기가 레지스트리에 반영되지 않으면 페이지 파일이 있는 관리 공유에 액세스합니다. 예를 들어 \\ServerName\C$입니다.

    3. 컴퓨터의 시스템 드라이브에 페이징 파일(pagefile.sys)이 있고 설치된 RAM을 통해 100MB 이상인지 확인합니다.

    4. 컴퓨터의 하드 디스크 드라이브에 실제 RAM보다 더 많은 여유 공간이 있는지 확인합니다.

  2. 컴퓨터에서 CrashOnCtrlScroll 레지스트리 값을 사용하도록 설정하여 시스템에서 키보드를 사용하여 덤프 파일을 생성할 수 있도록 합니다.

    1. 동일한 네트워크 및 서브넷의 원격 컴퓨터에서 레지스트리 편집기>네트워크 레지스트리 연결로 이동합니다. 영향을 받는 컴퓨터에 연결하고 다음 레지스트리 키를 찾습니다.

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. 두 레지스트리 키에 다음 CrashOnCtrlScroll 레지스트리 항목을 만듭니다.

      값 이름: CrashOnCtrlScroll 데이터 형식: REG_DWORD 값: 1

    3. 레지스트리 편집기 닫고 컴퓨터를 다시 시작합니다.

  3. 컴퓨터에서 문제가 발생하면 오른쪽 Ctrl 키를 누른 채 스크롤 잠금 키를 두 번 눌러 메모리 덤프를 생성합니다.

    참고

    기본적으로 덤프 파일은 경로 %SystemRoot%\MEMORY에 있습니다. DMP.

풀 모니터를 사용하여 더 이상 고정되지 않은 실제 컴퓨터에 대한 데이터 수집

풀 모니터는 ExAllocatePoolWithTag 호출에 전달되는 풀 유형 및 태그별 할당 수와 미해결 할당 바이트를 보여 줍니다.

자세한 내용은 PoolMon을 사용하여 Kernel-Mode 메모리 누수PoolMon 예제 찾기를 참조하세요.

메모리 덤프를 사용하여 고정된 상태에서 실행 중인 가상 머신에 대한 데이터 수집

가상 머신이 실행 중인 애플리케이션에 대해 다음 방법 중 하나를 사용합니다.

Microsoft Hyper-V

디버그-VM cmdlet을 통해 기본 제공 NMI 기능을 사용하여 메모리 덤프를 디버그하고 가져올 수도 있습니다.

Hyper-V에서 가상 머신을 디버그하려면 Windows PowerShell 다음 cmdlet을 실행합니다.

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

Vm 웨어

VMware 스냅샷을 사용하거나 상태를 일시 중단하고 전체 메모리 덤프 파일에 해당하는 메모리 덤프 파일을 추출할 수 있습니다. VMware의 핵심 도구(vmss2core)를 사용하여 일시 중단(.vmss) 및 스냅샷(.vmsn) 상태 파일을 덤프 파일로 변환합니다. 그런 다음 표준 Windows 디버깅 도구를 사용하여 파일을 분석합니다.

Citrix XenServer

메모리 덤프 프로세스는 오른쪽 Ctrl+스크롤 잠금+스크롤 잠금 키보드 조합을 눌러 발생합니다. 자세한 내용은 Citrix에서 XenServer에서 실행되는 Windows Virtual Machine에서 메모리 덤프를 트리거하는 방법 의 방법 1을 참조하세요.

Windows Server의 시스템 드라이브에 대한 공간 제한 사항

Windows Server에서는 시스템 볼륨에서 전체 메모리 덤프 파일을 생성하기에 충분한 사용 가능한 디스크 공간이 없을 수 있습니다.

시스템 드라이브에 충분한 공간이 없는 경우 두 번째 옵션이 있습니다. DedicatedDumpFile 레지스트리 항목을 사용할 수 있습니다. 자세한 내용은 메모리 덤프에 대한 대상 경로 구성을 참조하세요.

자세한 내용은 DedicatedDumpFile 레지스트리 값을 사용하여 시스템 드라이브의 공간 제한을 극복하는 방법을 참조하세요.