關於 Azure 受控快取服務的 ClientDiagnosticLevel

注意

如需為您的應用程式選擇正確 Azure 快取供應專案的指引,請參閱 哪一個 Azure 快取供應專案適合我?

受控快取服務用戶端應用程式會使用診斷層級來設定為診斷資料收集。 此診斷層級提供一項可用於設定資料收集層級的設定。 本主題提供疑難排解步驟和診斷的概觀,以針對受控快取服務應用程式進行疑難排解。

重要

在受控快取服務版本中,本主題所述的 ClientDiagnosticLevel和相關用戶端步驟僅適用于角色型雲端服務快取用戶端。

受控快取服務 應用程式的疑難排解和診斷

在 Azure 上執行的應用程式是廣泛散發的多實例應用程式,這些應用程式難以偵錯。 需要有標準以上的工具和方法才能疑難排解這類應用程式。 針對 Azure 應用程式進行疑難排解已超出本主題的範圍,但 Azure 中的診斷和偵錯中提供詳細資訊。

設定受控快取服務應用程式以收集診斷資料以進行疑難排解需要設定診斷層級,以及在角色啟動期間設定快取診斷。 本主題提供受控快取服務應用程式這些步驟的概觀。

  • 設定用戶端診斷層級

  • 在角色啟動期間設定快取診斷

  • 各診斷層級的效能計數器

設定用戶端診斷層級

受控快取服務提供五個用戶端診斷層級,可用來設定診斷資料收集的數量。 診斷層級範圍由 0 到 4,而數字表示針對快取伺服器和用戶端所收集的診斷資訊數量。 每個診斷層級都包含一組預先設定的效能計數器、事件記錄檔、追蹤和損毀傾印設定,可用來監視受控快取服務應用程式的健康情況。

用戶端診斷層級 收集的診斷資料

0

僅限非常重大/嚴重的伺服器記錄檔。

1

有助於評估使用模式、快取系統健康情況及任何潛在錯誤的診斷資料。 這是預設組態層級。

2

所有要求和重要系統資訊的精細診斷資料。

3

包含更多詳細資訊和系統資訊的診斷資料。

4

所有要求和系統資訊的最高詳細程度記錄檔。

對應於快取用戶端和快取伺服器診斷的快取診斷層級有兩種。 DiagnosticLevel 代表快取伺服器診斷,而 ClientDiagnosticLevel 則代表快取用戶端診斷。 每一個層級都會設定一組不同的效能計數器、記錄檔、追蹤和損毀傾印設定。 這些診斷層級會設定於應用程式的 ServiceConfiguration.cscfg 檔案中,只需部署更新後的 ServiceConfiguration.cscfg 檔案,即可針對執行中的雲端應用程式進行變更。

快取用戶端的 ClientDiagnosticLevel 層級是在 ServiceConfiguration.cscfg 中,在快取用戶端角色的組態區段中指定。 當角色設定為做為快取用戶端時,受控快取服務 NuGet套件會新增此設定。

注意

如需使用 受控快取服務 NuGet 套件設定快取用戶端的詳細資訊,請參閱如何:設定 Azure 快取用戶端 受控快取服務

預設 ClientDiagnosticLevel 為 1,如果角色沒有 ClientDiagnosticLevel ,則會使用 ClientDiagnosticLevel 1。 若要變更 ClientDiagnosticLevel,請修改 ServiceConfiguration.cscfg 中角色的 ClientDiagnosticLevel 設定。 下列範例是 WebRole1 ServiceConfiguration.cscfg 檔案的 區段, 其 ClientDiagnosticLevel 為 1。

<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 用戶端填充碼的詳細資訊,請參閱使用 Azure 受控快取服務執行 Memcache 應用程式

ClientDiagnosticLevel 收集的資料

0

  • 記錄層級: 重大

  • 沒有效能計數器

  • 未登錄事件記錄檔

  • 迷你損毀傾印

1

2

3

4

注意

在 Azure 模擬器中執行受控快取服務用戶端應用程式時,所有角色實例的追蹤都會收集在*_IN_0資料夾下,即使有多個角色實例也一樣。 這是設計的行為。 受控快取服務應用程式裝載于 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\[Current SDK Version]\ref\Caching 中的Microsoft.ApplicationServer.Caching.AzureCommon.dll參考, 並使用 (或Imports) 語句新增下列專案。

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

注意

如果角色已設定為使用 受控快取服務 NuGet 套件的快取用戶端,則已新增Microsoft.ApplicationServer.Caching.AzureCommon.dll元件參考。

如果您要將快取新增至現有的角色,且診斷設定程式碼已經存在,您可以在呼叫 O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start 之前,將呼叫新增至 O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics 至現有的診斷啟動程式碼。

警告

受控快取服務 應用程式中的診斷資料收集需要呼叫 O:Microsoft.ApplicationServer.Caching.AzureCommon.CacheDiagnostics.ConfigureDiagnostics 和 O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start。 若這兩種方法均未在啟動角色期間呼叫,則不會收集快取診斷資料。

各診斷層級的效能計數器

下列幾節包含各伺服器和用戶端診斷層級內含的效能計數器清單。 受控快取服務和效能計數器都包含在內。 如需包含受控快取服務效能計數器描述的完整清單,請參閱監視 Azure 受控快取服務。 如需效能計數器的詳細資訊,請參閱.NET Framework中的效能計數器

  • 用戶端診斷層級 1 效能計數器

  • 用戶端診斷層級 2、3 和 4 效能計數器

用戶端診斷層級 1 效能計數器

ClientDiagnosticLevel 1 包含下列效能計數器。

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Requests

用戶端診斷層級 2、3 和 4 效能計數器

ClientDiagnosticLevel 2、3 和 4 包含下列效能計數器。

  • \Azure Caching:Client Host\Requests

  • \Azure Caching:Client Host\Requests / sec

  • \Azure Caching:Client Host\Server Responses Dropped / sec

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Failure Exceptions / sec

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client Host\Read Requests

  • \Azure Caching:Client Host\Write Requests

  • \Azure Caching:Client Host\Bytes Received / sec

  • \Azure Caching:Client Host\Bytes Sent / sec

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Local Cache Filled Percentage

  • \Azure Caching:Client Host\Local Cache Hits Percentage

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Total Local Cache Objects

  • \Azure Caching:Client Host\Total Notifications Received

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions / sec

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Retry Exceptions / sec

  • \Azure Caching:Client Host\Total Connection Requests Failed

  • \Azure Caching:Client Host\Network Exceptions

  • \Azure Caching:Client Host\Network Exceptions / sec

  • \Azure Caching:Client Host\Current Waiting Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Requests

  • \Azure Caching:Client(*)\Requests / sec

  • \Azure Caching:Client(*)\Server Responses Dropped / sec

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Failure Exceptions / sec

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client(*)\Read Requests

  • \Azure Caching:Client(*)\Write Requests

  • \Azure Caching:Client(*)\Bytes Received / sec

  • \Azure Caching:Client(*)\Bytes Sent / sec

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Local Cache Filled Percentage

  • \Azure Caching:Client(*)\Local Cache Hits Percentage

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Total Local Cache Objects

  • \Azure Caching:Client(*)\Total Notifications Received

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions / sec

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Retry Exceptions / sec

  • \Azure Caching:Client(*)\Total Connection Requests Failed

  • \Azure Caching:Client(*)\Network Exceptions

  • \Azure Caching:Client(*)\Network Exceptions / sec

  • \Azure Caching:Client(*)\Current Waiting Requests

另請參閱

參考

Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor

概念

監控 Azure 受管理快取服務

其他資源

.NET Framework 中的效能計數器
Azure 中的診斷和偵錯