성능 카운터 라이브러리 값을 수동으로 다시 작성

이 문서에서는 성능 카운터 라이브러리 값을 수동으로 다시 빌드하는 방법을 설명합니다.

적용 대상: Windows 10 - 모든 버전, Windows Server 2012 R2
원래 KB 번호: 300956

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 추가된 보호를 위해 레지스트리를 수정하기 전에 백업하세요. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하세요.

시스템 모니터 도구를 사용하는 경우 일부 카운터가 누락되었거나 카운터 데이터가 포함되지 않을 수 있습니다. 성능 카운터 라이브러리의 기본 집합이 손상되어 다시 작성해야 할 수 있습니다. 또한 사용자 지정(Microsoft .NET Framework 애플리케이션 생성) 카운터 또는 확장 가능한 카운터를 다시 빌드해야 할 수도 있습니다.

이 동작은 다음과 같은 상황에서 발생할 수 있습니다.

  • 특정 확장 가능한 카운터는 레지스트리를 손상합니다.
  • 일부 WMI(Windows Management Instrumentation) 기반 프로그램은 레지스트리를 수정합니다.

기본 성능 카운터 다시 작성

확장 가능한 카운터 정보는 다음 위치 모두에 저장됩니다.

  • 레지스트리 하위 키: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009.

  • %Systemroot%\System32\Perfc009.dat 파일 및 파일입니다%Systemroot%\System32\Perfh009.dat.

기본 성능 카운터 라이브러리를 수동으로 다시 빌드하려면 다음 단계를 수행합니다.

  1. Perfc009.dat 파일과 Perfh009.dat 파일을 확장합니다. 이러한 파일은 Windows 설치 디스크에 있습니다. 압축된 파일은 및 에서 DriveLetter:\i386\perfc009.da_DriveLetter:\i386\perfh009.da_찾을 수 있습니다. 폴더에 있는 파일을 바꿉다 %Systemroot%\System32 .

  2. 레지스트리 편집기 시작한 다음 레지스트리에서 다음 키를 찾습니다.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

  3. 레지스트리에서 마지막 카운터 값을 1846 (10진수)으로 변경하고 마지막 도움말 값을 1847 (10진수)으로 변경합니다.

  4. 다음 레지스트리 키를 찾아 성능 하위 키가 있는 서비스를 검색합니다.
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  5. 성능 하위 키에서 다음 값을 제거합니다(있는 경우).

    • 첫 번째 카운터
    • 첫 번째 도움말
    • 마지막 카운터
    • 마지막 도움말

    Exctrlst.exe 도구를 사용하여 설치된 DLL(성능 카운터 동적 연결 라이브러리 파일)을 찾을 수도 있습니다. 그런 다음 레지스트리에 액세스하여 DWORD 값을 제거합니다. 이제 시스템 기본 카운터만 포함하는 실행 가능한 성능 레지스트리가 있습니다.

    참고

    레지스트리의 성능 하위 키에서 값을 제거하면 설치된 .NET Framework 애플리케이션이 다음에 시작될 때 작동하지 않을 수 있습니다. 이 경우 확장 가능한 카운터 다시 추가 섹션의 명령을 사용하여 lodctr /R 성능 카운터를 다시 빌드합니다. .NET Framework 애플리케이션을 시작할 때 계속 문제가 발생하는 경우 이 문서의 사용자 지정 .NET Framework 어셈블리 성능 카운터 다시 설치 섹션을 참조하세요.

확장 가능한 카운터 다시 추가

서비스 목록에서 확장 가능한 카운터를 다시 추가해야 합니다. 이렇게 하려면 먼저 카운터를 로드하는 데 사용되는 .ini 파일을 식별해야 합니다.

  1. 명령 프롬프트 창을 엽니다.

  2. 명령 프롬프트에서 를 입력 cd %Systemroot%\System32한 다음 Enter 키를 누릅니다.

  3. 명령 프롬프트에서 를 입력 findstr drivername *.ini한 다음 Enter 키를 누릅니다.

  4. 목록의 각 드라이버 이름에 대한 .ini 파일의 이름을 확인합니다.

  5. 명령 프롬프트에서 명령을 입력한 lodctr <inifile> 다음 Enter 키를 누릅니다.

    참고

    이 명령 <에서 inifile> 은 다시 로드하려는 드라이버에 대한 .ini 파일의 이름을 나타냅니다.

    예를 들어 ASP 드라이버를 다시 로드하려는 경우 4단계에서 기록한 목록에는 Axperf.ini ASP 드라이버(axperf.ini:drivername=ASP)에 대한 .ini 파일임을 보여 줍니다. ASP 드라이버를 다시 로드하려면 명령 프롬프트에 를 입력 lodctr axperf.ini 한 다음 Enter 키를 누릅니다.

  6. 목록의 각 .ini 파일에 대해 5단계를 반복합니다.

  7. Restart your computer.

Windows Server에서 확장 가능 및 타사 카운터를 포함하여 모든 성능 카운터를 다시 빌드하려면 명령 프롬프트에 다음 명령을 입력합니다. 각 명령 다음에 Enter 키를 누릅니다.

cd \windows\system32
lodctr /R

참고

  • /R 는 대문자입니다. 이 명령을 성공적으로 수행하려면 컴퓨터에 대한 관리 권한이 있어야 합니다.
  • 32비트 버전의 Windows Lodctr /R:<filename> 를 실행하는 컴퓨터에서 명령은 파일 이름을 사용하여 성능 카운터 레지스트리 문자열 및 정보를 복원하는 표준 방법입니다.

Windows Server는 영어 운영 체제의 폴더에 있는 C:\Windows\inf\009 모든 .ini 파일을 읽기 때문에 모든 카운터를 다시 빌드합니다.

참고

  • 클러스터 또는 데이터 센터 제품을 실행하는 경우 카운터 목록을 새로 고치려면 노드를 장애 조치(failover)해야 합니다. 기본 카운터와 확장 가능한 카운터 모두에 대해 확장 가능한 카운터를 다시 추가 아래의 단계를 수행한 후에 이 작업을 수행해야 합니다.
  • Exchange 또는 SQL Server 같은 자체 성능 카운터를 추가하는 애플리케이션을 실행하는 시스템에서는 성능 카운터를 로드하는 데 사용되는 .ini 파일이 에 %Systemroot%\System32없을 수 있습니다. 이러한 .ini 파일은 일반적으로 애플리케이션 폴더 구조에서 찾을 수 있습니다.
  • 이전 단계를 사용할 때 성능 라이브러리에 대한 오류 메시지가 표시되면 IIS DLL(성능 동적 링크 라이브러리)을 언로드하고 다시 로드해야 할 수 있습니다.
  • .NET Framework 애플리케이션을 시작할 때 문제가 계속 발생하는 경우 사용자 지정 .NET Framework 어셈블리 성능 카운터 다시 설치 섹션을 참조하세요.

사용자 지정 .NET Framework 어셈블리 성능 카운터 다시 설치

여기에 나열된 절차를 수행한 후 .NET Framework 애플리케이션을 시작할 때 문제가 계속 발생하는 경우 사용자 지정 .NET Framework 애플리케이션에 대한 성능 카운터를 다시 빌드해야 할 수 있습니다. 이렇게 하려면 .NET Framework 설치 관리자 도구(Installutil.exe)의 옵션을 사용합니다/i. 성능 카운터를 만드는 DLL 파일의 파일 이름을 알고 있어야 합니다.

이러한 절차를 따르고 Microsoft System Center Operations Manager 2007이 설치된 시스템에 설치된 모든 서비스에 대한 레지스트리에서 카운터를 제거하면 관리 서버가 손상되었을 수 있습니다. Config Service, SDK 서비스 및 데이터베이스 쓰기 모듈에 대한 카운터는 INI 파일에서 확장 가능한 카운터 형식으로 제공되지 않습니다. 대신 설치 시 등록됩니다. 따라서 System Center Operations Manager 2007을 시작하려고 하면 성능 카운터가 누락되어 다음 예제와 유사한 오류 메시지가 표시될 수 있습니다.

Event Type: Error  
Event Source: OpsMgr SDK Service  
Event Category: None  
Event ID: 26380  
Date: date  
Time: time  
User: N/A  
Computer: MOM  
Description: The System Center Operations Manager SDK Service failed due to an unhandled exception.

System Center Operations Manager 2007에서 이 문제를 resolve 성능 카운터를 만든 .NET Framework 어셈블리를 다시 설치해야 합니다. 이렇게 하려면 .NET Framework 설치 관리자 도구(Installutil.exe)의 옵션을 사용하여 /i 다음 어셈블리를 다시 설치합니다.

  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

예를 들어 명령 프롬프트에서 다음 명령을 입력한 다음 각 명령 다음에 Enter 키를 누릅니다.

InstallUtil /i Microsoft.Mom.ConfigService.dll
InstallUtil /i Microsoft.Mom.Sdk.ServiceDataLayer.dll
InstallUtil /i Microsoft.Mom.DatabaseWriteModules.dll
InstallUtil /i Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

참고

이러한 명령을 성공적으로 수행하려면 컴퓨터에 대한 관리 권한이 있어야 합니다.