适用于 Windows 的 Azure 性能诊断 (PerfInsights) VM 扩展
Azure 性能诊断 VM 扩展可帮助从 Windows VM 收集性能诊断数据。 扩展执行分析,并提供发现和建议的报告,以识别和解决虚拟机上的性能问题。 此扩展安装名为 PerfInsights 的故障排除工具。
注意
如果要从 Azure 门户针对非经典 VM 在 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 扩展保护的设置数据已加密,并且仅在目标虚拟机上解密。 请注意, storageAccountName 和 storageAccountKey 区分大小写。 以下部分列出了其他必需的参数。
{
"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')]",
"enableContinuousDiagnostics": "[parameters('enableContinuousDiagnostics')]",
"traceDurationInSeconds": "[parameter('traceDurationInSeconds')]",
"perfCounterTrace": "[parameters('perfCounterTrace')]",
"networkTrace": "[parameters('networkTrace')]",
"xperfTrace": "[parameters('xperfTrace')]",
"storPortTrace": "[parameters('storPortTrace')]",
"requestTimeUtc": "[parameters('requestTimeUtc')]",
"resourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
},
"protectedSettings": {
"storageAccountKey": "[parameters('storageAccountKey')]"
}
}
}
属性值
名称 | 值/示例 | 说明 |
---|---|---|
apiVersion | 2015-06-15 | API 的版本。 |
发布者 | Microsoft.Azure.Performance.Diagnostics | 扩展的发布者命名空间。 |
type | AzurePerformanceDiagnostics | VM 扩展的类型。 |
typeHandlerVersion | 1.0 | 扩展处理程序的版本。 |
performanceScenario | 基本 | 要捕获数据的性能方案。 有效值为: basic、 vmslow、 azurefiles 和 custom。 |
enableContinuousDiagnostics | True | 启用连续诊断。 有效值为 true 或 false。 若要启用持续性能诊断,需要提供此属性。 |
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== | 存储帐户的密钥。 |
安装扩展
注意
建议通过“性能诊断”边栏选项卡安装扩展,如 在 VM 上安装并运行性能诊断中所述。
按照以下说明在 Windows 虚拟机上安装扩展:
登录 Azure 门户。
选择要安装此扩展的虚拟机。
选择“ 扩展 + 应用程序 ”边栏选项卡,然后选择“ 添加”。
搜索 “Azure 性能诊断”,单击扩展,查看条款和条件,然后选择“ 下一步”。
提供安装的参数值,然后安装扩展。 有关受支持方案的详细信息,请参阅 如何使用 PerfInsights。
安装成功后,扩展的状态将显示 “预配成功”。
注意
预配成功后,扩展将运行。 基本方案需要两分钟或更短的时间才能完成。 对于其他方案,它会在安装期间指定的持续时间内运行。
删除扩展
注意
建议通过“性能诊断”边栏选项卡卸载扩展,如 卸载性能诊断中所述。
若要从虚拟机中删除扩展,请执行以下步骤:
登录到 Azure 门户,选择要从中删除此扩展的虚拟机,然后选择“ 扩展 + 应用程序 ”边栏选项卡。
选择“性能诊断扩展”,然后选择“ 卸载”。
模板部署
可以使用 Azure 资源管理器模板部署 Azure 虚拟机扩展。 上一部分详述的 JSON 架构可以在 Azure 资源管理器模板中使用。 这会在 Azure 资源管理器模板部署期间运行 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"
},
"enableContinuousDiagnostics": {
"type": "boolean",
"defaultValue": "false"
},
"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')]",
"enableContinuousDiagnostics" : "[parameters('enableContinuousDiagnostics')]",
"traceDurationInSeconds": "[parameters('traceDurationInSeconds')]",
"perfCounterTrace": "[parameters('perfCounterTrace')]",
"networkTrace": "[parameters('networkTrace')]",
"xperfTrace": "[parameters('xperfTrace')]",
"storPortTrace": "[parameters('storPortTrace')]",
"requestTimeUtc": "[parameters('requestTimeUtc')]",
"resourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
},
"protectedSettings": {
"storageAccountKey": "[parameters('storageAccountKey')]"
}
}
}
]
}
PowerShell 部署
Set-AzVMExtension
使用 命令将 Azure 性能诊断 VM 扩展部署到现有虚拟机:
$PublicSettings = @{ "storageAccountName"="mystorageaccount";"performanceScenario"="basic"; "enableContinuousDiagnostics" : $False;"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 文件包含诊断日志以及包含发现和建议的报告。 输出 zip 文件的 SAS 链接可以在名为 zipfilename_saslink.txt 的文件夹 C:\Packages\Plugins\Microsoft.Azure.Performance.Diagnostics.AzurePerformanceDiagnostics\<version> 下的文本文件中找到。 具有此链接的任何人都可以下载 zip 文件。
为了帮助支持工程师处理支持票证,Microsoft可能会使用此 SAS 链接下载诊断数据。
若要查看报表,请提取 zip 文件并打开 PerfInsights Report.html 文件。
还应能够通过选择扩展名直接从门户下载 zip 文件。
注意
门户中显示的 SAS 链接有时可能不起作用。 这可能是由编码和解码操作期间格式不正确的 URL 引起的。 可以改为直接从 VM 中的 *_saslink.txt 文件获取链接。
故障排除和支持
通知区域中的扩展部署状态 () 可能会显示“部署正在进行”,即使已成功预配扩展也是如此。
只要扩展状态指示已成功预配扩展,就可以安全地忽略此问题。
可以使用扩展日志解决安装过程中的一些问题。 扩展执行输出记录到以下目录中找到的文件:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Performance.Diagnostics.AzurePerformanceDiagnostics\<version>
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈