VM-Erweiterung für Azure Performance Diagnostics (PerfInsights) für Windows

Gilt für: Windows ✔️ VMs

Performance Diagnostics ist ein Tool zur Problembehandlung, mit dem Sie Leistungsprobleme auf Azure virtuellen Computern (VMs) erkennen und beheben können. In diesem Artikel wird die VM-Erweiterung beschrieben, die die Leistungsdiagnose auf Windows VMs und alternativen Methoden für die Installation ermöglicht.

Hinweis

Ausführliche Informationen zum Aktivieren des Tools mithilfe des Azure Portals und zum Ausführen von Berichten finden Sie unter Run performance diagnostics reports on Azure virtual machines.

Erweiterungsschema

Der folgende JSON-Code zeigt das Schema für Azure VM-Erweiterung für die Leistungsdiagnose. Für die Erweiterung ist der Name eines Speicherkontos erforderlich, um die Diagnoseausgabe und den Bericht zu speichern. Der Speicherkontoschlüssel sollte in einer geschützten Einstellungskonfiguration gespeichert werden. Die geschützten Einstellungsdaten der Azure VM-Erweiterung sind verschlüsselt und werden nur auf dem virtuellen Zielcomputer entschlüsselt. Beachten Sie, dass für storageAccountName und storageAccountKey die Groß- und Kleinschreibung berücksichtigt wird. Weitere erforderliche Parameter sind im folgenden Abschnitt aufgeführt.

Geben Sie den Authentifizierungstyp in der JSON-Datei an. Wenn kein Authentifizierungstyp angegeben ist, ist der Standardauthentifizierungstyp vom System zugewiesene verwaltete Identität, und Sie müssen einen Speicherkontoschlüssel übergeben.

{
    "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'))]",
        "Overrides": {
          "AlwaysOnThresholdConfigs": {
            "HighCPURule": {
              "CpuPercentageThresholdAllCore": "[parameters('alwaysOnCpuAllCoreThreshold')]",
              "CpuPercentageThresholdAnyCore": "[parameters('alwaysOnCpuAnyCoreThreshold')]"
            },
            "HighMemoryRule": {
              "AvailablePhysicalMemoryPercentageThreshold": "[parameters('alwaysOnAvailableMemoryThreshold')]",
              "CommitInUsePercentageThreshold": "[parameters('alwaysOnCommitMemoryThreshold')]"
            },
            "HighDiskRule": {
              "DiskIopsWritePercentageThreshold": "[parameters('alwaysOnDiskWriteThreshold')]",
              "DiskIopsReadPercentageThreshold": "[parameters('alwaysOnDiskReadThreshold')]"
            }
          },
          "OnDemandThresholdConfigs": {
            "HighCPURule": {
              "CpuPercentageThresholdAllCore": "[parameters('onDemandCpuAllCoreThreshold')]",
              "CpuPercentageThresholdAnyCore": "[parameters('onDemandCpuAnyCoreThreshold')]"
            },
            "HighMemoryRule": {
              "AvailablePhysicalMemoryPercentageThreshold": "[parameters('onDemandAvailableMemoryThreshold')]",
              "CommitInUsePercentageThreshold": "[parameters('onDemandCommitMemoryThreshold')]"
            },
            "HighDiskRule": {
              "DiskIopsWritePercentageThreshold": "[parameters('onDemandDiskWriteThreshold')]",
              "DiskIopsReadPercentageThreshold": "[parameters('onDemandDiskReadThreshold')]"
            }
          }
        }
      },
    "protectedSettings": {
        "authenticationType": "[parameters('authenticationType')]",                         "storageAccountKey": "[parameters('storageAccountKey')]",
        "managedIdentityClientId": "[parameters('managedIdentityClientId')]",
       }
     }
   }

Immobilienwerte

Name Wert/Beispiel BESCHREIBUNG
apiVersion 2015-06-15 Die Version der API.
Verleger Microsoft.Azure.Performance.Diagnostics Der Namespace des Herausgebers für die Erweiterung.
Typ AzurePerformanceDiagnostics Der Typ der VM-Erweiterung.
typeHandlerVersion 1,0 Die Version des Erweiterungshandlers.
performanceScenario basic Das Leistungsszenario für die Erfassung von Daten. Gültige Werte sind: basic, vmslow, azurefiles und custom.
enableContinuousDiagnostics Richtig Aktivieren Sie die fortlaufende Diagnose. Gültige Werte sind true oder false. Um die kontinuierliche Leistungsdiagnose zu aktivieren, stellen Sie diese Eigenschaft bereit.
traceDurationInSeconds 300 Die Dauer der Ablaufverfolgungen, wenn Optionen für die Ablaufverfolgung ausgewählt wurden.
perfCounterTrace p Option zum Aktivieren der Ablaufverfolgung für Leistungsindikatoren. Gültige Werte sind p oder ein leerer Wert. Lassen Sie den Wert leer, wenn Sie diese Ablaufverfolgung nicht erfassen möchten.
networkTrace n Option zum Aktivieren der Netzwerkablaufverfolgung. Gültige Werte sind n oder ein leerer Wert. Wenn Sie diese Ablaufverfolgung nicht erfassen möchten, lassen Sie den Wert leer.
xperfTrace x Option zum Aktivieren der XPerf-Ablaufverfolgung. Gültige Werte sind x oder ein leerer Wert. Lassen Sie den Wert leer, wenn Sie diese Ablaufverfolgung nicht erfassen möchten.
storPortTrace s Option zum Aktivieren der StorPort-Ablaufverfolgung. Gültige Werte sind s oder ein leerer Wert. Lassen Sie den Wert leer, wenn Sie diese Ablaufverfolgung nicht erfassen möchten.
srNumber 123452016365929 Die Supportticketnummer, sofern verfügbar. Lassen Sie den Wert leer, wenn Sie ihn nicht haben.
requestTimeUtc 2017-09-28T22:08:53.736Z Aktuelles Datum und aktuelle Uhrzeit in UTC. Wenn Sie das Portal zum Installieren dieser Erweiterung verwenden, müssen Sie diesen Wert nicht angeben.
Ressourcen-ID /subscriptions/{subscriptionId}
/resourceGroups/{resourceGroupName}
/providers/{resourceProviderNamespace}
/{resourceType}/{resourceName}
Der eindeutige Bezeichner einer VM.
SpeicherkontoName mystorageaccount Der Name des Speicherkontos zum Speichern der Diagnoseprotokolle und Ergebnisse.
storageAccountKey aB1cD2eF-3gH4iJ5kL6-mN7oP8qR= Der Schlüssel für das Speicherkonto.
Authentifizierungstyp System-verwaltete Identität Der Authentifizierungstyp, der zum Herstellen einer Verbindung mit dem Speicherkonto verwendet wird. Gültige Werte sind systemmanagedidentity, usermanagedidentityund storagekeys.
managedIdentityClientId 00001111-aaaa-2222-bbbb-3333cccc4444 Die Client-ID der vom Benutzer verwalteten Identität, die für die Authentifizierung für das Speicherkonto verwendet werden soll.
Außerkraftsetzungen "Overrides": { "AlwaysOnThresholdConfigs": { "HighCPURule": { "CpuPercentageThresholdAllCore": 80 } } } (Optional) Gibt benutzerdefinierte Schwellenwerte an, die von der Leistungsdiagnose verwendet werden, um die CPU-, Arbeitsspeicher- und Datenträgerauslastung während fortlaufender oder on-demand-Diagnoseausführungen auszuwerten. Wenn Sie diese Eigenschaft nicht angeben, werden Standardwerte verwendet. Geben Sie nur die Schwellenwerte an, die Sie außer Kraft setzen möchten.

Erweiterung entfernen

Hinweis

Es wird empfohlen, die Erweiterung über das Blatt "Leistungsdiagnose" zu deinstallieren, wie unter "Leistungsdiagnose deinstallieren" beschrieben.

Um die Erweiterung von einem virtuellen Computer zu entfernen, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich beim portal Azure an. Wählen Sie den virtuellen Computer aus, von dem Sie diese Erweiterung entfernen möchten, und wählen Sie dann das Blatt "Erweiterungen + Anwendungen" aus.

  2. Wählen Sie die AzurePerformanceDiagnostics-Erweiterung und dann " Deinstallieren" aus.

    Screenshot: Blatt „Erweiterungen“ mit Hervorhebung der Option „Deinstallieren“

Bereitstellung von Vorlagen

Azure-VM-Erweiterungen können mit Azure Resource Manager-Vorlagen bereitgestellt werden, wie im folgenden Beispiel.

{
 "$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"
   },
   "authenticationType": {
     "type": "string",
     "defaultValue": "SystemManagedIdentity"
   },
   "managedIdentityClientId": {
     "type": "string",
         "defaultValue": ""
   }      
 },
 "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'))]",
         "Overrides": "[parameters('overrides')]"
       },
       "protectedSettings": {
           "storageAccountKey": "[parameters('storageAccountKey')]"
       }
     }
   }
 ]
}

PowerShell-Bereitstellung

Verwenden Sie den Befehl Set-AzVMExtension, um Azure VM-Erweiterung für die Leistungsdiagnose auf einem vorhandenen virtuellen Computer bereitzustellen:

  • Vom System zugewiesene verwaltete Identität

    $PublicSettings = @{ "storageAccountName"="mystorageaccount";"performanceScenario"="basic"; "enableContinuousDiagnostics" : $False;"traceDurationInSeconds"=300;"perfCounterTrace"="p";"networkTrace"="";"xperfTrace"="";"storPortTrace"="";"srNumber"="";"requestTimeUtc"="2024-10-20T22:08:53.736Z";"resourceId"="VMResourceId" }
    $ProtectedSettings = @{"storageAccountName"="mystorageaccount";"authenticationType"="SystemManagedIdentity" }
    
    Set-AzVMExtension -ExtensionName "AzurePerformanceDiagnostics" -ResourceGroupName "myResourceGroup" -VMName "myVM" -Publisher "Microsoft.Azure.Performance.Diagnostics" -ExtensionType "AzurePerformanceDiagnostics" -TypeHandlerVersion 1.0 -Settings $PublicSettings -ProtectedSettings $ProtectedSettings -Location WestUS
    
  • Vom Benutzer zugewiesene verwaltete Identität

    $PublicSettings = @{ "storageAccountName"="mystorageaccount";"performanceScenario"="basic"; "enableContinuousDiagnostics" : $False;"traceDurationInSeconds"=300;"perfCounterTrace"="p";"networkTrace"="";"xperfTrace"="";"storPortTrace"="";"srNumber"="";"requestTimeUtc"="2024-10-20T22:08:53.736Z";"resourceId"="VMResourceId" }
    $ProtectedSettings = @{"storageAccountName"="mystorageaccount";"authenticationType"="UserManagedIdentity";"managedIdentityClientId"="myUserManagedIdentityClientId"}
    
    Set-AzVMExtension -ExtensionName "AzurePerformanceDiagnostics" -ResourceGroupName "myResourceGroup" -VMName "myVM" -Publisher "Microsoft.Azure.Performance.Diagnostics" -ExtensionType "AzurePerformanceDiagnostics" -TypeHandlerVersion 1.0 -Settings $PublicSettings -ProtectedSettings $ProtectedSettings -Location WestUS
    
  • Zugriffsschlüssel für Speicherkonto

    $PublicSettings = @{ "storageAccountName"="mystorageaccount";"performanceScenario"="basic"; "enableContinuousDiagnostics" : $False;"traceDurationInSeconds"=300;"perfCounterTrace"="p";"networkTrace"="";"xperfTrace"="";"storPortTrace"="";"srNumber"="";"requestTimeUtc"="2024-10-20T22: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
    

Problembehandlung und Support

  • Der Bereitstellungsstatus der Erweiterung (im Infobereich) zeigt möglicherweise die Bereitstellung in Bearbeitung an, obwohl die Erweiterung erfolgreich bereitgestellt wurde. Dieses Problem ignorieren, solange der Erweiterungsstatus angibt, dass die Erweiterung erfolgreich bereitgestellt wurde.

  • Verwenden Sie die Erweiterungsprotokolle, um einige Probleme während der Installation zu beheben. Die Ausgabe der Erweiterungsausführung wird in Dateien protokolliert, die sich in C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Performance.Diagnostics.AzurePerformanceDiagnostics\<version> befinden.

  • Wenn die folgenden Fehler im Azure Portal oder in den Erweiterungsprotokollen für die Leistungsdiagnose angezeigt werden (AzPerfDiagExtension.log oder PerfInsights.log), wird normalerweise die HTTPS-Zertifikatkette unterbrochen. Um die Fehler zu beheben, stellen Sie sicher, dass keine Netzwerksicherheitsgruppe (Network Security Group, NSG) den Zugriff auf die urLs der Zertifizierungsstelle blockiert, die in Azure Zertifizierungsstellendetails beschrieben sind. Oder stellen Sie sicher, dass Sie über kein SSL-Inspektionstool in Ihrer virtuellen Netzwerk-Appliance oder Firewall verfügen.

    • Fehler bei der Bereitstellung – Meldung: Fehler beim Hochladen des PerfInsights-Ergebnisses auf Azure Speicherkonto.
    • Der PerfInsights-Prozess wurde mit Code 1700 beendet.
    • Es konnte keine Vertrauensstellung für den sicheren SSL/TLS-Kanal eingerichtet werden. Das Remotezertifikat ist laut Validierungsverfahren ungültig.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe benötigen, eine Support-Anfrage erstellen oder Azure-Community-Support fragen. Sie können auch Produktfeedback an Azure Feedbackcommunity übermitteln.