다음을 통해 공유


개체 및 카운터 디자인

성능 개체는 성능 데이터를 사용할 수 있는 엔터티입니다. 성능 카운터는 성능 개체에 사용할 수 있는 데이터 형식을 정의합니다. 애플리케이션은 여러 성능 개체에 대한 정보를 제공할 수 있습니다. 성능 개체는 단일 인스턴스 카운터 또는 여러 인스턴스 카운터를 포함할 수 있습니다. 단일 인스턴스 개체는 단일 카운터 값 집합을 반환합니다.

여러 인스턴스 개체는 애플리케이션이 제어하는 개체의 각 발생에 대한 개체의 인스턴스를 반환합니다. 예를 들어 SCSI 애플리케이션은 Bytes Read 및 Bytes Written와 같은 두 개의 카운터가 있는 드라이브 개체를 정의할 수 있습니다. 소비자가 개체를 쿼리할 때 성능 DLL은 애플리케이션이 제어하는 각 드라이브에 대한 개체의 인스턴스를 반환합니다.

개체가 단일 인스턴스 또는 여러 인스턴스를 지원하는지 결정한 후에는 개체가 제공할 카운터 유형을 결정해야 합니다. 예를 들어 원시 값, 요금 또는 백분율로 표시되는 카운터 값을 제공할 수 있습니다.

선택해야 하는 미리 정의된 카운터 유형 목록은 Windows Server 2003 배포 키트카운터 형식 섹션을 참조하세요. 카운터 유형에 따라 단순히 원시 데이터를 제공하거나 표시 가능한 값을 계산하기 위해 소비자가 사용하는 시간 및 빈도 정보 및 추가 카운터 데이터를 제공해야 할 수도 있습니다.

데이터를 수집하는 데 사용하는 방법은 애플리케이션의 특정 루틴이 호출될 때마다 카운터를 증가시키는 것만큼 간단하거나 시간이 많이 걸리는 계산을 포함할 수 있습니다. 카운터와 타이머는 증가해야 하며 지워지지 않아야 합니다. 소비자가 샘플링하는 사이에 두 번 래핑하지 않는 한 카운터는 래핑할 수 있습니다. 애플리케이션은 성능에 영향을 주지 않는 한 정상적인 실행 중에 데이터를 수집하고 저장할 수 있습니다.

일부 유형의 데이터의 경우 요청 시 데이터를 수집하는 것이 더 효율적이거나 적절할 수 있습니다. 이 경우 성능 DLL은 데이터가 요청된 애플리케이션과 통신해야 합니다. 수집 비용이 많이 드는 데이터의 경우(프로세서 시간 또는 메모리 사용량 측면에서) 소비자가 비용이 많이 드는 데이터를 경우에만 데이터를 수집하는 것이 좋습니다. 이렇게 하면 소비자가 비용이 많이 들지 않는 모든 카운터에 대한 데이터를 정기적으로 요청할 수 있습니다. 필요한 경우에만 데이터를 요청할 수 있습니다. 성능 도구는 비용이 많이 드는 데이터를 수집하지 않습니다.