適用於 Windows 的 Azure 效能診斷 VM 擴充功能

Azure 效能診斷 VM 擴充功能可協助從 Windows VM 收集效能診斷數據。 延伸模組會執行分析,並提供結果和建議的報告,以識別和解決虛擬機上的效能問題。 此擴充功能會安裝稱為 PerfInsights 的疑難解答工具。

注意事項

如果您想要從非傳統 VM 的 Azure 入口網站 在 VM 上執行診斷,建議您使用新的體驗。 如需詳細資訊,請參閱 Azure 虛擬機的效能診斷

必要條件

此擴充功能可安裝於:

  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2
  • Windows 10
  • Windows 8.1
  • Windows 8

延伸模組架構

下列 JSON 顯示 Azure 效能診斷 VM 擴充功能的架構。 此擴充功能需要記憶體帳戶的名稱和金鑰,才能儲存診斷輸出和報告。 這些值是機密的。 儲存體帳戶金鑰應該儲存在受保護的設定組態內。 受 Azure VM 擴充功能保護的設定數據會加密,而且只會在目標虛擬機上解密。 請注意, storageAccountNamestorageAccountKey 會區分大小寫。 下一節會列出其他必要的參數。

    {
      "name": "[concat(parameters('vmName'),'/AzurePerformanceDiagnostics')]",
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "location": "[parameters('location')]",
      "apiVersion": "2015-06-15",
      "properties": {
        "publisher": "Microsoft.Azure.Performance.Diagnostics",
        "type": "AzurePerformanceDiagnostics",
        "typeHandlerVersion": "1.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "storageAccountName": "[parameters('storageAccountName')]",
          "performanceScenario": "[parameters('performanceScenario')]",
          "traceDurationInSeconds": "[parameter('traceDurationInSeconds')]",
          "perfCounterTrace": "[parameters('perfCounterTrace')]",
          "networkTrace": "[parameters('networkTrace')]",
          "xperfTrace": "[parameters('xperfTrace')]",
          "storPortTrace": "[parameters('storPortTrace')]",
          "srNumber": "[parameters('srNumber')]",
          "requestTimeUtc":  "[parameters('requestTimeUtc')]",
          "resourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
        },
        "protectedSettings": {
            "storageAccountKey": "[parameters('storageAccountKey')]"        
        }
      }
    }

屬性值

名稱 值 / 範例 描述
apiVersion 2015-06-15 API 版本。
出版商 Microsoft.Azure.Performance.Diagnostics 延伸模組的發行者命名空間。
類型 AzurePerformanceDiagnostics VM 擴充功能的類型。
typeHandlerVersion 1.0 擴充功能處理程式的版本。
performanceScenario 基本 要擷取數據的效能案例。 有效值為: basicvmslowazurefilescustom
traceDurationInSeconds 300 如果已選取任何追蹤選項,則為追蹤的持續時間。
perfCounterTrace p 啟用性能計數器追蹤的選項。 有效值為 p 或空白值。 如果您不想擷取此追蹤,請將值保留為空白。
networkTrace n 啟用網路追蹤的選項。 有效值為 n 或空白值。 如果您不想擷取此追蹤,請將值保留為空白。
xperfTrace x 啟用 XPerf 追蹤的選項。 有效值為 x 或空白值。 如果您不想擷取此追蹤,請將值保留為空白。
storPortTrace s 啟用 StorPort 追蹤的選項。 有效值為 s 或空白值。 如果您不想擷取此追蹤,請將值保留為空白。
srNumber 123452016365929 如果有的話,支援票證號碼。 如果您沒有值,請將值保留為空白。
requestTimeUtc 2017-09-28T22:08:53.736Z 目前的日期時間,以Utc為單位。 如果您使用入口網站來安裝此擴充功能,則不需要提供此值。
resourceId /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} VM 的唯一標識碼。
storageAccountName mystorageaccount 用來儲存診斷記錄和結果的記憶體帳戶名稱。
storageAccountKey lDuVvxuZB28NNP...hAiRF3voADxLBTcc== 儲存體帳戶的金鑰。

安裝擴充功能

請遵循下列指示,在 Windows 虛擬機上安裝擴充功能:

  1. 登入 Azure 入口網站

  2. 選取您要安裝此擴充功能的虛擬機。

    Azure 入口網站 的螢幕快照,其中已醒目提示 [虛擬機]。

  3. 選取 [ 擴充功能 + 應用程式] 刀鋒視窗,然後選取 [ 新增]

    [延伸模組] 刀鋒視窗的螢幕快照,其中已醒目提示 [新增]。

  4. 搜尋 Azure 效能診斷],按一下延伸模組,檢閱條款和條件,然後選取[下一步]

    [新增資源] 畫面的螢幕快照,其中已醒目提示 [Azure 效能診斷]。

  5. 提供安裝的參數值,然後安裝擴充功能。 如需支援案例的詳細資訊,請參閱 如何使用 PerfInsights

    [安裝擴充功能] 對話框的螢幕快照。

  6. 安裝成功時,擴充功能的狀態會顯示 [ 布建成功]

    布建成功訊息的螢幕快照。

    注意事項

    延伸模組會在布建成功時執行。 基本案例需要兩分鐘或更少的時間才能完成。 在其他案例中,它會在安裝期間指定的持續時間執行。

拿掉延伸模組

若要從虛擬機移除擴充功能,請遵循下列步驟:

  1. 登入 Azure 入口網站,選取您要從中移除此擴充功能的虛擬機,然後選取 [擴充功能 + 應用程式] 刀鋒視窗。

  2. 選取 [效能診斷擴充功能],然後選取 [ 卸載]

    [擴充功能] 刀鋒視窗的螢幕快照,其中已醒目提示 [卸載]。

範本部署

您可以使用 Azure Resource Manager 樣本來部署 Azure 虛擬機擴充功能。 上一節中詳述的 JSON 架構可在 Azure Resource Manager 範本中使用。 這會在 Azure Resource Manager 範本部署期間執行 Azure 效能診斷 VM 擴充功能。 以下是範例範本:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "type": "string",
      "defaultValue": "yourVMName"
    },
    "location": {
      "type": "string",
      "defaultValue": "southcentralus"
    },
    "storageAccountName": {
      "type": "securestring",
      "defaultValue": "yourStorageAccount"
    },
    "storageAccountKey": {
      "type": "securestring",
      "defaultValue": "yourStorageAccountKey"
    },
    "performanceScenario": {
      "type": "string",
      "defaultValue": "basic"
    },
    "srNumber": {
      "type": "string",
      "defaultValue": ""
    },
  "traceDurationInSeconds": {
    "type": "int",
    "defaultValue": 300
  },
    "perfCounterTrace": {
      "type": "string",
      "defaultValue": "p"
    },
    "networkTrace": {
      "type": "string",
      "defaultValue": ""
    },
    "xperfTrace": {
      "type": "string",
      "defaultValue": ""
    },
    "storPortTrace": {
      "type": "string",
      "defaultValue": ""
    },
    "requestTimeUtc": {
      "type": "string",
      "defaultValue": "10/2/2017 11:06:00 PM"
    }        
  },
  "resources": [
    {
      "name": "[concat(parameters('vmName'),'/AzurePerformanceDiagnostics')]",
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "location": "[parameters('location')]",
      "apiVersion": "2015-06-15",
      "properties": {
        "publisher": "Microsoft.Azure.Performance.Diagnostics",
        "type": "AzurePerformanceDiagnostics",
        "typeHandlerVersion": "1.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "storageAccountName": "[parameters('storageAccountName')]",
          "performanceScenario": "[parameters('performanceScenario')]",
          "traceDurationInSeconds": "[parameters('traceDurationInSeconds')]",
          "perfCounterTrace": "[parameters('perfCounterTrace')]",
          "networkTrace": "[parameters('networkTrace')]",
          "xperfTrace": "[parameters('xperfTrace')]",
          "storPortTrace": "[parameters('storPortTrace')]",
          "srNumber": "[parameters('srNumber')]",
          "requestTimeUtc":  "[parameters('requestTimeUtc')]",
          "resourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
        },
        "protectedSettings": {
            "storageAccountKey": "[parameters('storageAccountKey')]"
        }
      }
    }
  ]
}

PowerShell 部署

命令 Set-AzVMExtension 可用來將 Azure 效能診斷 VM 擴充功能部署至現有的虛擬機。

$PublicSettings = @{ "storageAccountName"="mystorageaccount";"performanceScenario"="basic";"traceDurationInSeconds"=300;"perfCounterTrace"="p";"networkTrace"="";"xperfTrace"="";"storPortTrace"="";"srNumber"="";"requestTimeUtc"="2017-09-28T22:08:53.736Z";"resourceId"="VMResourceId" }
$ProtectedSettings = @{"storageAccountKey"="mystoragekey" }

Set-AzVMExtension -ExtensionName "AzurePerformanceDiagnostics" `
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Publisher "Microsoft.Azure.Performance.Diagnostics" `
    -ExtensionType "AzurePerformanceDiagnostics" `
    -TypeHandlerVersion 1.0 `
    -Settings $PublicSettings `
    -ProtectedSettings $ProtectedSettings `
    -Location WestUS

所擷取數據的相關信息

PerfInsights 工具會根據選取的案例,收集各種記錄、組態和診斷數據。 如需詳細資訊,請參閱 PerfInsights 檔

檢視和共享結果

您可以在 ZIP 檔案中找到擴充功能的輸出,該檔案上傳至安裝期間指定的記憶體帳戶,並使用共用存 取簽章 (SAS) 共用 30 天。 此 zip 檔案包含診斷記錄和包含結果和建議的報告。 您可以在資料夾 C:\Packages\Plugins\Microsoft.Azure.Performance.Diagnostics.AzurePerformanceDiagnostics\<version> 下名為 zipfilename_saslink.txt 的文本文件內找到輸出 zip 檔案的 SAS 連結。 擁有此連結的任何人都可以下載 zip 檔案。

為了協助支援工程師處理您的支援票證,Microsoft 可能會使用此 SAS 鏈接來下載診斷數據。

若要檢視報表,請擷取 zip 檔案,然後開啟 PerfInsights Report.html 檔案。

您也應該可以選取擴展名,直接從入口網站下載 zip 檔案。

效能診斷詳細狀態和擴充功能下載鏈接的螢幕快照。

注意事項

入口網站中顯示的SAS連結有時可能無法運作。 這可能是因為編碼和譯碼作業期間的 URL 格式不正確所造成。 您可以改為直接從 VM 中的 *_saslink.txt 檔案取得連結。

疑難解答和支援

  • 通知區域中 (擴充功能部署狀態) 可能會顯示「部署進行中」,即使已成功布建擴充功能也一樣。

    只要擴充功能狀態指出已成功布建擴充功能,就可以放心地忽略此問題。

  • 您可以使用擴充功能記錄來解決安裝期間的一些問題。 延伸模組執行輸出會記錄到下列目錄中的檔案:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Performance.Diagnostics.AzurePerformanceDiagnostics\<version>

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群