Azure Managed Cache Service의 ClientDiagnosticLevel 정보

참고

애플리케이션에 적합한 Azure Cache 제품을 선택하는 방법에 대한 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.

Managed Cache Service 클라이언트 애플리케이션은 진단 수준을 사용하여 진단 데이터 수집에 대해 구성됩니다. 이 진단 수준은 데이터 수집 수준을 구성하는 단일 설정을 제공합니다. 이 항목에서는 Managed Cache Service 애플리케이션 문제 해결을 위한 문제 해결 단계 및 진단에 대한 개요를 제공합니다.

중요

Managed Cache Service 릴리스에서 이 항목에 설명된 ClientDiagnosticLevel 및 관련 클라이언트 단계는 역할 기반 클라우드 서비스 캐시 클라이언트에만 적용됩니다.

Managed Cache Service 애플리케이션에 대한 문제 해결 및 진단

Azure에서 실행되는 애플리케이션은 디버그하기 어려울 수 있는 널리 분산된 다중 인스턴스 애플리케이션입니다. 이러한 유형의 응용 프로그램은 문제 해결 시 표준 도구 및 접근 방식보다 강력한 도구와 접근 방식이 필요합니다. Azure 애플리케이션 문제 해결은 이 항목의 범위를 벗어나지만, 자세한 내용은 Azure의 진단 및 디버깅에서 사용할 수 있습니다.

문제 해결을 위해 진단 데이터를 수집하도록 Managed Cache Service 애플리케이션을 구성하려면 역할 시작 중에 진단 수준을 구성하고 캐시 진단을 구성해야 합니다. 이 항목에서는 Managed Cache Service 애플리케이션에 대한 이러한 단계에 대한 개요를 제공합니다.

  • 클라이언트 진단 수준 구성

  • 역할 시작 중 캐시 진단 구성

  • 진단 수준별 성능 카운터

클라이언트 진단 수준 구성

Managed Cache Service 진단 데이터 수집의 양을 구성하는 데 사용되는 5개의 클라이언트 진단 수준을 제공합니다. 진단 수준은 0부터 4까지이며 각 숫자는 캐시 서버 및 클라이언트에 대해 어느 정도의 진단 정보가 수집되는지를 나타냅니다. 각 진단 수준에는 Managed Cache Service 애플리케이션의 상태를 모니터링하는 데 사용할 수 있는 미리 구성된 성능 카운터, 이벤트 로그, 추적 및 크래시 덤프 설정 집합이 포함되어 있습니다.

클라이언트 진단 수준 수집되는 진단 데이터

0

매우 중요한/심각한 서버 로그만

1

사용 패턴, 캐시 시스템 상태 및 잠재적 오류를 평가하는 데 유용한 진단 데이터(기본 구성 수준)

2

모든 요청과 중요한 시스템 정보에 대한 세분화된 진단 데이터

3

보다 자세한 정보 및 시스템 정보가 포함된 진단 데이터

4

모든 요청 및 시스템 정보에 대한 가장 자세한 로그

캐시 클라이언트 및 캐시 서버 진단에 해당하는 캐싱 진단 수준에는 두 가지가 있습니다. DiagnosticLevel 은 캐시 서버 진단을 나타내고 ClientDiagnosticLevel 은 캐시 클라이언트 진단을 나타냅니다. 각 수준은 서로 다른 성능 카운터, 로그, 추적 및 크래시 덤프 설정 집합을 구성합니다. 이러한 진단 수준은 응용 프로그램의 ServiceConfiguration.cscfg 파일에서 구성되며, 업데이트된 ServiceConfiguration.cscfg 파일을 배포하는 간단한 방법을 통해 현재 실행 중인 클라우드 응용 프로그램에 맞게 변경할 수 있습니다.

캐시 클라이언트에 대한 ClientDiagnosticLevel 수준은 캐시 클라이언트 역할에 대한 구성 섹션의 ServiceConfiguration.cscfg에 지정됩니다. 이 설정은 역할이 캐시 클라이언트 역할을 하도록 구성된 경우 Managed Cache Service NuGet 패키지에 의해 추가됩니다.

참고

Managed Cache Service NuGet 패키지를 사용하여 캐시 클라이언트를 구성하는 방법에 대한 자세한 내용은 방법: Azure Managed Cache Service 대한 캐시 클라이언트 구성을 참조하세요.

기본 ClientDiagnosticLevel 은 1이고 역할에 ClientDiagnosticLevel 이 없으면 ClientDiagnosticLevel 1이 사용됩니다. ClientDiagnosticLevel을 변경하려면 ServiceConfiguration.cscfg의 역할에 대한 ClientDiagnosticLevel 설정을 수정합니다. 다음 예제는 WebRole1ClientDiagnosticLevel 이 1인 ServiceConfiguration.cscfg 파일의 섹션입니다.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

다음 표에는 각 클라이언트 진단 수준에 대해 수집되는 진단 데이터가 나와 있습니다.

참고

클라이언트 진단 수준에 대한 크래시 덤프 설정은 Memcache 클라이언트 심을 사용하는 캐시 클라이언트에만 적용됩니다. Memcache가 아닌 클라이언트에 대해서는 크래시 덤프가 수집되지 않습니다. Memcache 클라이언트 shim에 대한 자세한 내용은 Azure Managed Cache Service 사용하여 Memcache 앱 실행을 참조하세요.

ClientDiagnosticLevel 수집되는 데이터

0

  • 로그 수준: 위험

  • 성능 카운터 없음

  • 등록되는 이벤트 로그 없음

  • 미니 크래시 덤프

1

2

3

4

참고

Azure 에뮬레이터에서 Managed Cache Service 클라이언트 애플리케이션을 실행하는 경우 역할 인스턴스가 여러 대 있는 경우에도 모든 역할 인스턴스에 대한 추적이 *_IN_0 폴더 아래에 수집됩니다. 이 동작은 의도된 것입니다. Managed Cache Service 애플리케이션이 Azure에서 호스트되는 경우 각 클라이언트 역할 인스턴스에 대한 추적은 역할 인스턴스의 해당 폴더에 있습니다.

역할 시작 중 캐시 진단 구성

캐싱 진단 데이터 수집을 시작하려면 역할 시작 중에 다음 코드를 호출해야 합니다. 캐싱 진단 데이터를 수집하려면 이 코드가 캐시 클라이언트나 캐시 서버에 해당하는 각 역할에 추가되어 있어야 합니다. 다음 예제와 같이 이 코드를 호스트하는 편리한 위치 중 하나는 역할의 OnStart 재정의에 있습니다.

public override bool OnStart()
{
    DiagnosticMonitorConfiguration dmConfig = 
        DiagnosticMonitor.GetDefaultInitialConfiguration();

    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", 
        dmConfig);

    return base.OnStart();
}
Public Overrides Function OnStart() As Boolean

    ' Existing OnStart override code omitted for clarity.

    Dim dmConfig As DiagnosticMonitorConfiguration = _
        DiagnosticMonitor.GetDefaultInitialConfiguration()

    ' Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig)

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", _
        dmConfig)

    Return MyBase.OnStart()

End Function

O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics 메서드는 캐싱 진단 데이터의 컬렉션을 구성합니다. 이 메서드를 호출하지 않으면 캐싱 진단 데이터가 수집되지 않습니다. CacheDiagnostics 클래스를 사용하려면 C:\Program Files\Microsoft SDKs\Azure\.NET SDK\[현재 SDK 버전]\ref\Caching에 있는 Microsoft.ApplicationServer.Caching.AzureCommon.dll 대한 참조를 추가하고 다음 using(또는 Imports) 문을 추가합니다.

using Microsoft.ApplicationServer.Caching.AzureCommon;
Imports Microsoft.ApplicationServer.Caching.AzureCommon

참고

역할이 Managed Cache Service NuGet 패키지를 사용하여 캐시 클라이언트로 구성된 경우 Microsoft.ApplicationServer.Caching.AzureCommon.dll 어셈블리 참조가 이미 추가되었습니다.

기존 역할에 캐싱을 추가하고 진단 구성 코드가 이미 있는 경우 O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start를 호출하기 전에 O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics에 대한 호출을 기존 진단 시작 코드에 추가할 수 있습니다.

경고

Managed Cache Service 애플리케이션에서 진단 데이터 수집을 위해서는 O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics 및 O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start를 모두 호출해야 합니다. 역할이 시작될 때 이러한 두 메서드가 호출되지 않으면 캐싱 진단 데이터가 수집되지 않습니다.

진단 수준별 성능 카운터

다음 섹션에는 각 서버 및 클라이언트 진단 수준에 포함된 성능 카운터 목록이 나와 있습니다. Managed Cache Service 및 성능 카운터가 모두 포함됩니다. Managed Cache Service 성능 카운터에 대한 설명이 포함된 전체 목록은 Azure Managed Cache Service 모니터링을 참조하세요. 성능 카운터에 대한 자세한 내용은 .NET Framework 성능 카운터를 참조하세요.

  • 클라이언트 진단 수준 1 성능 카운터

  • 클라이언트 진단 수준 2, 3 및 4 성능 카운터

클라이언트 진단 수준 1 성능 카운터

ClientDiagnosticLevel 1에는 다음 성능 카운터가 포함됩니다.

  • \Azure 캐싱:클라이언트 호스트\실패 예외

  • \Azure 캐싱:클라이언트 호스트\총 로컬 캐시 적중 수

  • \Azure 캐싱:클라이언트 호스트\현재 서버 연결

  • \Azure 캐싱:클라이언트 호스트\평균 Get 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트 호스트\평균 Put 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트 호스트\다시 시도 예외

  • \Azure 캐싱:클라이언트 호스트\시간 제한 예외

  • \Azure 캐싱:클라이언트 호스트\요청

  • \Processor(_Total)\% 프로세서 시간

  • \.NET CLR 메모리(_Global_)\% GC의 시간

  • \Azure 캐싱:클라이언트(*)\실패 예외

  • \Azure 캐싱:클라이언트(*)\총 로컬 캐시 적중 수

  • \Azure 캐싱:클라이언트(*)\현재 서버 연결

  • \Azure 캐싱:클라이언트(*)\평균 Get 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트(*)\평균 Put 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트(*)\다시 시도 예외

  • \Azure 캐싱:클라이언트(*)\시간 제한 예외

  • \Azure 캐싱:클라이언트(*)\요청

클라이언트 진단 수준 2, 3 및 4 성능 카운터

ClientDiagnosticLevel 2, 3 및 4에는 다음 성능 카운터가 포함됩니다.

  • \Azure 캐싱:클라이언트 호스트\요청

  • \Azure 캐싱:클라이언트 호스트\요청/초

  • \Azure 캐싱:클라이언트 호스트\손실된 서버 응답/초

  • \Azure 캐싱:클라이언트 호스트\실패 예외

  • \Azure 캐싱:클라이언트 호스트\실패 예외/초

  • \Azure 캐싱:클라이언트 호스트\평균 Get 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트 호스트\평균 Put 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트 호스트\평균 Get 대기 시간(네트워크)/작업(마이크로초)

  • \Azure 캐싱:클라이언트 호스트\읽기 요청

  • \Azure 캐싱:클라이언트 호스트\쓰기 요청

  • \Azure 캐싱:클라이언트 호스트\받은 바이트/초

  • \Azure 캐싱:클라이언트 호스트\보낸 바이트/초

  • \Azure 캐싱:클라이언트 호스트\현재 서버 연결

  • \Azure 캐싱:클라이언트 호스트\로컬 캐시 사용률

  • \Azure 캐싱:클라이언트 호스트\로컬 캐시 적중률

  • \Azure 캐싱:클라이언트 호스트\총 로컬 캐시 적중 수

  • \Azure 캐싱:클라이언트 호스트\총 로컬 캐시 개체 수

  • \Azure 캐싱:클라이언트 호스트\총 받은 알림 수

  • \Azure 캐싱:클라이언트 호스트\시간 제한 예외

  • \Azure 캐싱:클라이언트 호스트\시간 제한 예외/초

  • \Azure 캐싱:클라이언트 호스트\다시 시도 예외

  • \Azure 캐싱:클라이언트 호스트\다시 시도 예외/초

  • \Azure 캐싱:클라이언트 호스트\총 연결 요청 실패 횟수

  • \Azure 캐싱:클라이언트 호스트\네트워크 예외

  • \Azure 캐싱:클라이언트 호스트\네트워크 예외/초

  • \Azure 캐싱:클라이언트 호스트\현재 대기 중인 요청

  • \Processor(_Total)\% 프로세서 시간

  • \.NET CLR 메모리(_Global_)\% GC의 시간

  • \Azure 캐싱:클라이언트(*)\요청

  • \Azure 캐싱:클라이언트(*)\요청/초

  • \Azure 캐싱:클라이언트(*)\손실된 서버 응답/초

  • \Azure 캐싱:클라이언트(*)\실패 예외

  • \Azure 캐싱:클라이언트(*)\실패 예외/초

  • \Azure 캐싱:클라이언트(*)\평균 Get 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트(*)\평균 Put 대기 시간/작업(마이크로초)

  • \Azure 캐싱:클라이언트(*)\평균 Get 대기 시간(네트워크)/작업(마이크로초)

  • \Azure 캐싱:클라이언트(*)\읽기 요청

  • \Azure 캐싱:클라이언트(*)\쓰기 요청

  • \Azure 캐싱:클라이언트(*)\받은 바이트/초

  • \Azure 캐싱:클라이언트(*)\보낸 바이트/초

  • \Azure 캐싱:클라이언트(*)\현재 서버 연결

  • \Azure 캐싱:클라이언트(*)\로컬 캐시 사용률

  • \Azure 캐싱:클라이언트(*)\로컬 캐시 적중률

  • \Azure 캐싱:클라이언트(*)\총 로컬 캐시 적중 수

  • \Azure 캐싱:클라이언트(*)\총 로컬 캐시 개체 수

  • \Azure 캐싱:클라이언트(*)\총 받은 알림 수

  • \Azure 캐싱:클라이언트(*)\시간 제한 예외

  • \Azure 캐싱:클라이언트(*)\시간 제한 예외/초

  • \Azure 캐싱:클라이언트(*)\다시 시도 예외

  • \Azure 캐싱:클라이언트(*)\다시 시도 예외/초

  • \Azure 캐싱:클라이언트(*)\총 연결 요청 실패 횟수

  • \Azure 캐싱:클라이언트(*)\네트워크 예외

  • \Azure 캐싱:클라이언트(*)\네트워크 예외/초

  • \Azure 캐싱:클라이언트(*)\현재 대기 중인 요청

참고 항목

참조

Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor

개념

Azure 관리 캐시 서비스 모니터링

기타 리소스

.NET Framework의 성능 카운터
Azure의 진단 및 디버깅