모니터링 문제를 해결 하는 방법 및.NET Framework 2.0의 성능 카운터 로깅 문제

요약

공용 언어 런타임 (CLR) 성능 카운터를 사용 하는 방법 및 Microsoft.NET Framework 2.0에서에서 성능 카운터를 사용할 때 발생 하는 알려진된 문제점을 해결 하는 방법을 설명 합니다. 원격 컴퓨터에서 성능 카운터를 모니터링 하려면 원격 컴퓨터의 관리자 여야 합니다. 원격 컴퓨터에서 Microsoft Windows Server 2003을 실행 중인 경우 성능 모니터 사용자 (PMU) 그룹 또는 성능 로그 사용자 (PLU) 그룹에 있어야 합니다. CLR 성능 카운터를 기록 하려면 관리 권한이 있는 사용자로 실행 되도록 사용자를 구성 합니다. 모니터링 하거나 CLR 성능 카운터를 원격 컴퓨터에 로그온 하도록 관련 된 문제를 설명 합니다.

소개

CLR는 관리 되는 코드는 다음과 같은 서비스를 함께 제공합니다.
  • 언어 간 통합
  • 코드 액세스 보안
  • 개체 수명 관리
  • 리소스 관리
  • 형식 안전성
  • 선점형 스레딩
  • 메타 데이터 서비스 (리플렉션 형식)
  • 디버깅 및 프로 파일링 지원


CLR 응용 프로그램의 기능을 추적 하는 데 사용할 수 있는 성능 카운터에 있습니다. 성능 모니터 (Perfmon)를 사용 하 여 사용자 지정 성능 카운터를 만들 수 있습니다. 성능 카운터에서 반환 하는 값을 검토 하 여 시스템 성능을 모니터링할 수 있습니다.

자세한 내용

CLR 성능 카운터를 사용 하 여.NET Framework 2.0에서는 다음과 같은 알려진된 문제가 발생할 수 있습니다.

CLR 성능 카운터를 원격으로 모니터링할 수는 없으며

성능 모니터에서 원격 컴퓨터에 CLR 성능 카운터를 모니터링 하려고 할 때 다음과 유사한 오류 메시지가 나타납니다.
컴퓨터에 연결할 수 없습니다.
이 문제를 해결 하려면 다음 방법 중 하나를 사용 합니다.

방법 1: 원격 컴퓨터에서 원격 레지스트리 서비스가 실행 되 고 있는지 확인 하십시오.

이 문제가 발생 하면 원격 컴퓨터에서 원격 레지스트리 서비스가 실행 되 고 있는지 확인 합니다. 이렇게 하려면, 다음 단계를 수행하십시오.
  1. 시작, 실행을 클릭하고, cmd를 입력한 다음, 확인을 클릭합니다.
  2. 명령 프롬프트에서 작업 목록 서비스를 입력 하 고 enter 키를 누릅니다.

    확인 서비스 열에서 RemoteRegistry 가 호스트 하는 Svchost.exe 프로세스를 실행 중인. 서비스를 실행 하지 않는 경우 3 단계로 이동 합니다.
  3. 명령 프롬프트에서 net 시작 RemoteRegistry를입력 하 고 enter 키를 누릅니다.

방법 2: 필요한 사용 권한이 있는지 확인 하십시오.

원격 컴퓨터에 CLR 성능 카운터를 모니터링 하려면 다음 조건이 참 이어야 합니다.
  • 원격 컴퓨터에서 Administrators 그룹의 구성원 이어야 합니다.
  • 원격 컴퓨터에서 Windows Server 2003을 실행 중인 경우에 성능 카운터를 모니터링 하려면 성능 모니터 사용자 그룹의 구성원 이어야 합니다.
  • 원격 컴퓨터에서 Windows Server 2003을 실행 중인 경우에 성능 카운터를 기록 하려면 성능 로그 사용자 그룹의 구성원 이어야 합니다. 또한 로깅 프로세스를 Administrators 그룹 또는 성능 로그 사용자 그룹 실행 하도록 구성 하려면 다음 계정으로 실행 명령을 사용 해야 합니다.

원격 컴퓨터에 연결할 수 있지만 CLR 성능 카운터를 볼 수 없습니다.

원격 Windows Server 2003 기반 컴퓨터에서 Microsoft.NET Framework 1.1 서비스 팩 1 (SP1)을 실행 중인 경우 다음 Microsoft 기술 자료 문서에 설명 되어 있는 핫픽스를 적용:
924421 수정: 응용 프로그램 성능이 떨어집니다 또는 컴퓨터가 Windows 2003 기반 컴퓨터에서.NET Framework 1.1 서비스 팩 1 기반 응용 프로그램을 실행할 때 응답을 중지

CLR 성능 카운터 로깅 시작 하려고 하면 "ACCESS_DENIED" 오류 메시지가 나타난다

CLR 성능 카운터 로깅 시작 하려고 하면 다음과 유사한 오류 메시지가 나타날 수 있습니다.
오류 코드 5 (ACCESS_DENIED)

Shim 데이터베이스 버전 레지스트리 키-열 수 없습니다 v2.0.50727.00000. 서비스에 대 한 Open 프로시저가 ". DLL "D:\WINNT\system32\mscoree.dll"에서 "NETFramework 실패 했습니다. 이 서비스에 대 한 성능 데이터는 사용할 수 없습니다. 반환 된 상태 코드는 첨부 된 데이터의 첫번째 DWORD입니다. 상태 코드는 5 (ACCESS_DENIED)
CLR 성능 카운터 DLL (Corperfmonext.dll)를 로드 하는 첫 번째 프로세스가 프로세스간 통신 (IPC) 통신을 위한 명명된 된 이벤트를 만듭니다 때문에이 문제가 발생 합니다. 프로세스의 사용자 ID에 대 한 사용 권한을 사용 하 여 명명된 된 이벤트가 만들어집니다.

예를 들어, 관리 권한을 가진 사용자는 Perfmon을 시작 합니다. 그런 다음 사용자 CLR 성능 카운터를 모니터링 하 여 시작 합니다. 명명 된 이벤트 관리자 그룹에 부여 된 권한을 사용 하 여 만들어집니다. 이 시나리오에서는 사용자가 CLR 성능 카운터 로깅 시작 하려고 하는 경우 사용자 오류 메시지를 받습니다. "성능 로그 및 경고" 서비스가 명명 된 이벤트에 액세스할 수 없습니다 때문에이 문제가 발생 합니다.

이 문제를 해결 하려면 "성능 로그 및 경고" 서비스에서 Corperfmonext.dll 파일을 먼저 로드 합니다. 이렇게 하려면, 다음 단계를 수행하십시오.
  1. 시작, 실행을 클릭하고, cmd를 입력한 다음, 확인을 클릭합니다.
  2. 명령 프롬프트에서 작업 목록-m corperfmonext.dll입력 한 다음 ENTER 키를 누릅니다. 참고 각 처리 하는 표시 됩니다.
  3. 명령 프롬프트에서 taskmgr입력 한 다음 ENTER 키를 누릅니다.
  4. 프로세스 탭에서 2 단계에서 적어 둔 각 프로세스를 클릭 한 다음 프로세스 끝내기를클릭 합니다.
  5. 시작 실행을 차례로 누르고 Perfmon입력 한 다음 확인을 누릅니다.
  6. 성능 로그 및 경고를확장 한 다음 카운터 로그를 클릭 합니다.
  7. 를 사용 하려면 원하는 서비스를 마우스 오른쪽 단추로 클릭 한 다음 시작을 클릭 합니다.
참고: 이 문제는.NET Framework 이후 버전에서 해결 될 예정입니다.

Perfmon 64 비트 버전에서 32 비트 관리 되는 프로그램을 모니터링할 수는 없으며

Corperfmonext.dll 파일의 64 비트 버전은 64 비트 프로세스를 열거만이 문제가 발생 합니다. 또한 Corperfmonext.dll 파일의 32 비트 버전 32 비트 프로세스를 열거만 합니다. 64 비트 컴퓨터에서 32 비트 관리 되는 프로그램을 보려면 시작, 실행을 차례로 누르고, SystemRoot%\SysWOW64\perfmon.exe입력 한 다음 확인을 누릅니다.

참고: 이 문제는.NET Framework 이후 버전에서 해결 될 예정입니다.

원격 컴퓨터에서 관리 되는 프로그램을 다시 시작할 때 Perfmon 검색 하지 않습니다.

이 문제는 원격 레지스트리 서비스가 로컬 서비스 계정에서 실행 되기 때문에 발생 합니다. 로컬 서비스 계정은 성능 로그 사용자 그룹 또는 성능 모니터 사용자 그룹의 구성원이 아닙니다. 따라서 로컬 서비스 계정은 CLR 성능 카운터 IPC 블록에 액세스할 수는 없습니다. 그럼에도 불구 하 고 원격 레지스트리 서비스 모니터링을 시작한 사용자를 가장 하는 때문에 CLR 성능 카운터를 모니터링할 수 있습니다.

그러나 모니터링 되는 프로세스가 다시 시작 되 면 새 IPC 블록은 원격 레지스트리 서비스에는 보조 스레드에서 열립니다. 이 보조 스레드가 클라이언트의 사용자를 가장 하지 않습니다. 스레드가는 CLR 성능 카운터 IPC 블록을 액세스할 수 없습니다. 이 문제를 해결 하려면 클라이언트에서 성능 카운터 모니터링을 다시 시작 합니다.

유사한 이름을 가진 여러 CLR 성능 카운터 나타나는 "W3wp #1"

여러 ASP.NET 작업자 프로세스가 실행 중인 경우, 유사한 이름을 가진 CLR 성능 카운터 "W3wp #1" 또는 "W3sp #2" 나타날 수 있습니다. 프로세스 ID 라는 카운터는.NET Framework 2.0에서는.NET CLR 메모리 성능 개체에 추가 되었습니다. 이 카운터는 인스턴스 프로세스 ID를 표시합니다. 프로세스와 관련 된 CLR 성능 카운터를 확인 하려면이 카운터를 사용할 수 있습니다.

.NET CLR 메모리에서 프로세스 ID 라는 카운터를 볼 수 없습니다, 성능 카운터 기호는 올바르게 설치 되지 않을 수 있습니다. 이 문제를 해결하려면, 다음과 같이 하십시오.
  1. 시작, 실행을 클릭하고, cmd를 입력한 다음, 확인을 클릭합니다.
  2. 명령 프롬프트에서 unlodctr을 입력 합니다. NetFramework를 누른 다음 ENTER 키를 누릅니다.
  3. \Microsoft.Net\Framework\v2.0.50727 폴더로 변경 하려면 cd 명령을 사용 합니다.
  4. 명령 프롬프트에서 lodctr corperfmonsymbols.ini입력 한 다음 ENTER 키를 누릅니다.
속성

문서 ID: 922775 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백