다음을 통해 공유


네트워킹 성능 카운터

성능 콘솔 .NET CLR 네트워킹 범주에는 응용 프로그램에서 네트워크를 통해 보내거나 받는 데이터 정보를 제공하는 카운터가 포함됩니다. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.

성능 카운터

설명

Bytes Received

프로세스가 시작된 이후 AppDomain 내에 있는 모든 Socket 개체가 받은 총 누적 바이트 수입니다. 여기에는 TCP/IP에 의해 정의되지 않은 데이터 및 프로토콜 정보가 포함됩니다.

Bytes Sent

프로세스가 시작된 이후 AppDomain 내에 있는 모든 Socket 개체가 보낸 누적 바이트 수입니다. 여기에는 TCP/IP에 의해 정의되지 않은 데이터 및 프로토콜 정보가 포함됩니다.

Connections Established

프로세스가 시작된 이후 AppDomain 내에서 연결된 스트림에 대한 Socket 개체의 총 누적 수입니다.

Datagrams Received

프로세스가 시작된 이후 AppDomain 내에 있는 모든 Socket 개체가 받은 총 데이터그램 패킷 수입니다.

Datagrams Sent

프로세스가 시작된 이후 AppDomain 내에 있는 모든 Socket 개체가 보낸 총 데이터그램 패킷 수입니다.

HttpWebRequest Average Lifetime

프로세스가 시작된 이후 AppDomain 내에서 마지막 간격에 종료된 모든 HttpWebRequest 개체에 대한 평균 완료 시간입니다.

HttpWebRequest Average Queue Time

프로세스가 시작된 이후 AppDomain 내에서 마지막 간격에 큐에 남겨져 있는 모든 HttpWebRequest 개체에 대한 큐에 머무르는 평균 시간입니다.

HttpWebRequests Created/sec

AppDomain 내에서 초당 만들어지는 HttpWebRequest 개체의 수입니다.

HttpWebRequests Queued/sec

AppDomain 내에서 초당 큐에 추가된 HttpWebRequest 개체의 수입니다.

HttpWebRequests Aborted/sec

응용 프로그램이 AppDomain 내에서 초당 Abort 메서드를 호출한 HttpWebRequest 개체의 수입니다.

HttpWebRequests Failed/sec

AppDomain 내에서 초당 서버로부터 실패한 상태 코드를 받은 HttpWebRequest 개체의 수입니다.

설명

지원되는 네트워킹 성능 카운터를 지원하는 클래스는 여러 가지가 있습니다.

  • 일부 이벤트가 발생한 횟수를 측정하는 이벤트 카운터입니다.

  • 주고 받은 데이터 양을 측정하는 데이터 카운터입니다.

  • 여러 프로세스가 걸리는 시간을 측정하는 기간 카운터입니다. 시간은 다른 상태에서 온 후에 각 간격(대개 초 단위)마다 개체에 대해 측정됩니다.

  • 간격 당 특정 전환 중인 개체 수를 측정하는 간격 당 카운터입니다(일반적으로 초 당).

이벤트에 대한 네트워킹 성능 카운터는 다음과 같습니다.

  • Connections Established

  • Datagrams Received

  • Datagrams Sent

이러한 성능 카운터는 프로세스가 시작된 이후 개수를 제공합니다. 설정된 Socket 연결의 개수에는 설정된 스트림 소켓 연결에 대해 응용 프로그램에 의한 명시적 Socket 메서드 호출 및 다른 클래스(예: HttpWebRequest, FtpWebRequest, WebClientTcpClient)가 Socket에 수행한 내부 호출을 포함합니다.

Datagrams ReceivedDatagrams Sent 개수에는 응용 프로그램에 의한 명시적 Socket 메서드 호출 및 다른 클래스(예: UdpClient)가 Socket에 수행한 내부 호출을 사용하여 보냈거나 받은 데이터그램 패킷 수가 포함됩니다. 포함됩니다. Datagrams ReceivedDatagrams Sent 개수는 데이터그램의 평균 크기를 가정하여 데이터그램을 사용하여 보냈거나 받은 바이트 수에 대한 매우 불완전한 측정을 제공하는 데 사용할 수도 있습니다.

데이터에 대한 네트워킹 성능 카운터는 다음과 같습니다.

  • Bytes Received

  • Bytes Sent

위의 카운터는 프로세스가 시작된 이후 바이트 수를 제공합니다.

HttpWebRequest 개체가 전체 수명 주기 또는 일부 수명 주기 동안 전달에 걸린 시간을 측정하는 두 가지 기간 카운터가 있습니다.

  • HttpWebRequest Average Lifetime

  • HttpWebRequest Average Queue Time

HttpWebRequest Average Lifetime 카운터의 경우 대부분의 HttpWebRequest 개체의 수명은 응답 스트림이 응용 프로그램에 의해 닫힐 때까지 개체가 만들어지는 시간에 항상 시작합니다. 드문 두 가지 경우는 다음과 같습니다.

  • 응용 프로그램이 GetResponse 또는 BeginGetResponse 메서드를 호출하지 않는 경우 HttpWebRequest 개체의 수명은 무시됩니다.

  • GetResponse 또는 EndGetResponse 메서드를 호출할 때 HttpWebRequest 개체에서 WebException을 throw하는 경우 예외가 throw되면 수명이 끝납니다. 기술적으로 기본 응답 스트림은 해당 시점에서도 닫힙니다. 사용자에게 반환되는 응답 스트림은 실제로 응답 스트림의 복사본이 들어 있는 메모리 스트림입니다.

간격 당 특정 HttpWebRequest 개체 문제점을 추적하는 네 개의 카운터가 있습니다. 이러한 성능 카운터를 사용하면 응용 프로그램 개발자, 관리자 및 지원 부서 직원이 HttpWebRequest 개체가 무엇을 수행하는지 더 잘 이해할 수 있습니다. 카운터는 다음과 같습니다.

  • HttpWebRequests Created/sec

  • HttpWebRequests Queued/sec

  • HttpWebRequests Aborted/sec

  • HttpWebRequests Failed/sec

HttpWebRequests Aborted/sec 카운터의 경우 Abort에 대한 내부 호출도 계산됩니다. 이러한 내부 호출은 대개 응용 프로그램이 측정할 수 있는 시간 제한으로 인해 발생합니다.

HttpWebRequests Failed/sec 카운터에는 초당 서버로부터 실패한 상태 코드를 받은 HttpWebRequest 개체의 수가 포함됩니다. 즉, 요청이 끝날 때 Http 서버에서 받은 상태 코드가 200 ~ 299 사이의 범위에 없었음을 의미합니다. 처리되는 상태 코드와 새 요청의 결과(예를 들어, 401 권한이 없음 상태 코드)는 재시도 결과에 따라 실패하거나 실패하지 않습니다. 응용 프로그램이 다시 시도를 기반으로 오류를 볼 수 있으면 이 카운터가 증가됩니다.

System.Diagnostics 네임스페이스에 있는 PerformanceCounter 및 관련 클래스를 사용하면 네트워킹 성능 카운터에 액세스하여 관리할 수 있습니다. 네트워킹 성능 카운터는 Windows 성능 모니터 콘솔을 사용하여 볼 수도 있습니다.

네트워킹 성능 카운터는 구성 파일에 사용할 수 있도록 설정해야 합니다. 모든 네트워킹 성능 카운터는 구성 파일에 있는 단일 설정으로 사용하거나 사용하지 않도록 설정됩니다. 개별 네트워킹 성능 카운터를 활성화하거나 비활성화할 수 없습니다. 자세한 내용은 <performanceCounter> 요소(네트워크 설정)을 참조하십시오.

네트워킹 카운터를 사용하는 경우 AppDomain별 및 전역 성능 카운터를 만들고 업데이트합니다. 사용하지 않을 경우 응용 프로그램은 모든 네트워킹 성능 카운터 데이터를 제공하지 않습니다.

성능 카운터는 범주에 그룹화됩니다. 응용 프로그램은 다음 예제 코드를 사용하여 모든 범주를 나열할 수 있습니다.

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}

네트워킹 성능 카운터는 두 범주에 나열되어 있습니다.

  • ".NET CLR Networking" - .NET Framework 버전 2에 소개되고 .NET Framework 버전 2 이상에서 지원되는 원래 성능 카운터.

  • ".NET CLR Networking 4.0.0.0"- 위의 모든 소켓 카운터와 더불어 .NET Framework 버전 4 이상에서 지원되는 새로운 성능 카운터. 이러한 새 카운터는 HttpWebRequest 개체에 대한 성능 정보를 제공합니다.

응용 프로그램에서 성능 카운터에 액세스하고 관리하는 방법에 대한 자세한 내용은 .NET Framework의 성능 카운터를 참조하십시오.

참고 항목

참조

<performanceCounter> 요소(네트워크 설정)

런타임 프로파일링

System.Diagnostics

기타 리소스

.NET Framework의 성능 카운터