다음을 통해 공유


성능 임계값 모니터링 개요

업데이트: 2007년 11월

성능 카운터는 Windows에서 다양한 시스템 리소스로부터 성능 데이터를 수집하는 메커니즘입니다. Windows에는 사용자와 상호 작용할 수 있는 미리 정의된 성능 카운터 집합이 들어 있습니다. 여기에는 모든 Windows 2000 컴퓨터에 있는 카운터도 있고 특정 응용 프로그램에 관련되어 일부 컴퓨터에만 있는 사용자 지정 카운터도 있습니다. 각 카운터는 시스템의 특정 기능과 관련되어 있습니다. 예를 들어, 프로세서가 사용되는 시간, 메모리 사용률, 네트워크 연결을 통해 수신된 바이트 수 등을 모니터링하는 카운터가 있습니다. PerformanceCounter 구성 요소의 인스턴스를 사용하여 기존의 성능 카운터에 직접 연결하고 동적인 방법으로 카운터의 데이터와 상호 작용할 수 있습니다.

성능 카운터는 컴퓨터에서 성능 개체의 동작을 모니터링합니다. 성능 개체에는 프로세서, 디스크, 메모리와 같은 물리적 구성 요소와 프로세스 및 스레드와 같은 시스템 개체가 포함됩니다. 이러한 성능 개체는 Visual Studio와 Windows SDK(소프트웨어 개발 키트)에서 범주로 나타나며 동일한 성능 개체와 관련된 시스템 카운터는 공통 포커스를 나타내는 범주로 그룹화됩니다. PerformanceCounter 구성 요소의 인스턴스를 만들 때에는 먼저 구성 요소가 상호 작용할 범주를 나타낸 다음 해당 범주에서 상호 작용할 카운터를 선택합니다.

예를 들어, Windows에서 카운터의 범주는 Memory 범주입니다. 이 범주의 시스템 카운터에서는 사용할 수 있는 바이트나 캐시된 바이트와 같은 데이터를 추적합니다. 응용 프로그램에서 캐시된 바이트 수를 추적하려면 PerformanceCounter 구성 요소의 인스턴스를 만들어 Memory 범주에 연결한 다음 이 범주에서 캐시된 바이트 수를 선택합니다.

어떤 경우에는 범주가 더 작은 인스턴스로 나누어집니다. 인스턴스는 범주와 관련된 개체의 여러 상황에 따른 데이터를 추적합니다. 여기서 중요한 점은 인스턴스는 개별 카운터가 아니라 범주 전체에 적용된다는 사실입니다. 범주 안의 모든 카운터에는 범주에 대해 정의된 각 인스턴스가 있습니다. 예를 들어, Process 범주에는 "Idle" 및 "System"이라는 인스턴스가 있습니다. Process 범주 안의 각 카운터에는 유휴 프로세스 정보 또는 시스템 프로세스 정보를 나타내는 두 가지 인스턴스로 데이터를 지정할 수 있습니다. 범주와 카운터의 구조는 다음과 같습니다.

범주, 인스턴스 및 카운터

Visual Basic 범주 인스턴스

위에서 볼 수 있듯이 Process 범주에는 2개의 인스턴스가 있으므로 범주의 모든 카운터에 Idle 인스턴스와 System 인스턴스가 있습니다. 인스턴스에 대한 자세한 내용은 방법: 성능 카운터 인스턴스 추가 및 제거를 참조하십시오.

시스템에 여러 카운터의 범주를 사용할 수 있는데 그 중 가장 자주 사용하는 기본 범주에는 Cache, Memory, Objects, PhysicalDisk, Processor, Server, System 및 Thread 범주가 있습니다.

성능 카운터 데이터

성능 카운터에서는 시스템의 여러 부분에 대한 값을 기록합니다. 이러한 값은 엔트리로 저장되지 않지만 메모리에서 지정한 범주에 대해 핸들이 열려 있는 동안 유지됩니다. 성능 카운터에서 데이터를 검색하는 과정을 샘플링이라고 합니다. 샘플링할 때에는 카운터의 값을 직접 검색하거나 계산된 값을 검색합니다.

카운터가 정의되는 방법에 따라 이 값은 가장 최근의 리소스 활용(순간 값이라고도 함)이나 샘플링 시간 사이에서 마지막으로 측정한 두 값의 평균이 될 수 있습니다. 예를 들어, Process 범주의 Thread Count 카운터에서 값을 검색할 때 특정 프로세스에 대한 스레드의 개수를 이 값이 측정된 최종 시간으로 검색합니다. 이것은 순간 값입니다. 그러나 Memory 범주의 Pages/Sec 카운터를 검색할 때에는 마지막 2개를 샘플링하는 동안 검색된 메모리 페이지 수의 평균을 기반으로 초 당 속도를 검색합니다.

리소스 사용률은 작업이 수행되는 시간에 따라 상당히 다를 수 있습니다. 따라서 일정 간격 동안 사용률을 보여 주는 성능 카운터는 순간 카운터 값의 평균보다 더욱 유용한 측정 방식입니다. 왜냐하면 평균에는 서비스 시작이나 짧은 기간 동안 수치가 일정 범위를 크게 벗어나는 기타 이벤트에 대한 데이터가 포함되므로 결과가 왜곡될 수 있기 때문입니다.

PerformanceCounter 구성 요소는 가장 일반적인 Windows 성능 모니터링 요구 사항, 즉 서버에서 기존의 카운터에 연결하고 값을 읽거나 쓰는 데 필요한 기능을 제공합니다. 복합 데이터 모델링과 같은 추가 기능은 Windows 성능 모니터를 통해 직접 사용할 수 있습니다. 예를 들어, 성능 모니터를 사용하여 카운터에 포함된 데이터를 차트로 작성하고, 데이터에 대한 보고서를 실행하며, 경고를 설정하고, 로그에 데이터를 저장할 수 있습니다.

.NET 응용 프로그램에서 성능 카운터 사용

PerformanceCounter 구성 요소를 사용하여 액세스 권한을 가진 서버에 설치된 기존의 카운터에 연결하거나 사용자 지정 성능 카운터를 만들 수 있습니다. 모든 카운터에서 데이터를 읽을 수 있고 사용자 지정 카운터에 데이터를 쓸 수 있습니다.

기존의 성능 카운터에 연결하려면 카운터가 있는 컴퓨터, 카운터에 대한 범주 및 카운터의 이름을 지정하면 됩니다. 또한 카운터에 여러 개의 인스턴스가 포함된 경우 사용할 카운터의 인스턴스를 지정하는 옵션이 있습니다. 이 옵션을 사용하면 카운터에서 모든 데이터를 읽을 수 있습니다. 또한 코드를 사용하여 컴퓨터에 있는 기존의 범주, 카운터 및 인스턴스를 열거하거나 서버 탐색기를 사용하여 컴퓨터에 있는 기존의 카운터 목록을 볼 수 있습니다.

새 카운터를 만들려면 로컬 컴퓨터에 대해 완전히 새로운 범주를 지정해야 합니다. 기존의 범주에 새 카운터를 추가하거나 원격 컴퓨터에서 새 카운터를 만들 수는 없습니다. 그러나 사용자가 만든 모든 카운터에서 데이터를 읽고 쓸 수 있습니다.

서버 탐색기에서 성능 카운터 노드를 확장하여 서버에 있는 범주별 카운터나 분류된 인스턴스의 목록을 볼 수 있습니다. 또한 특정 성능 카운터나 인스턴스를 서버 탐색기에서 Microsoft Visual Studio의 구성 요소 디자이너로 끌어 와 해당 속성이 자동으로 선택한 카운터를 가리키도록 설정되는 PerformanceCounter 구성 요소의 인스턴스를 만들 수 있습니다.

ASP.NET에서 PerformanceCounter 구성 요소를 사용하는 경우 ASPNET 사용자 계정의 기본 설정에는 성능 카운터에 대한 액세스가 제한되어 있습니다. 기본적으로 ASPNET 사용자 계정으로는 성능 카운터에 쓸 수는 있지만 읽을 수는 없으며 새 범주도 만들 수 없습니다. ASPNET 계정으로 가장을 수행하여 새 범주를 만들 수 있습니다. 가장 ID에는 범주를 만들 수 있는 충분한 권한이 있어야 합니다. 응용 프로그램에서 배포 전에 지정될 수 있는 성능 카운터가 필요한 경우 배포 프로젝트에서 이를 만들 수 있습니다. 자세한 내용은 ASP.NET 웹 응용 프로그램 보안을 참조하십시오.

참고:

서버 탐색기에서 마우스 오른쪽 단추로 성능 카운터 노드를 클릭하고 적절한 메뉴 명령을 선택하여 새 카운터 범주를 만들 수 있습니다. 또한 마우스 오른쪽 단추로 특정 노드를 클릭하여 기존의 범주를 편집할 수 있습니다.

자세한 내용은 서버 탐색기/데이터베이스 탐색기를 참조하십시오.

제한

이 릴리스의 경우 해당 응용 프로그램에서 사용자 지정 카운터를 사용하기 전에 사용자 지정 성능 카운터를 만들려면 Windows 2000과 함께 설치된 성능 모니터(Perfmon.exe)를 다시 시작해야 합니다.

Microsoft Windows NT 버전 4.0에서는 PerformanceCounter 클래스가 완전히 지원되지 않습니다. 시스템 카운터를 읽을 수는 있지만 사용자 지정 카운터를 만들거나 삭제하거나 사용자 지정 카운터에 쓸 수는 없습니다.

참고 항목

개념

성능 카운터 데이터 분석

성능 카운터 프로그래밍 아키텍처

성능 카운터 수명

성능 카운터 형식