Azure VM Performance Diagnostics

Author by Mitchell Grande

Performance Diagnostics is an Azure tool to help diagnose performance-related problems with VMs.  The tool installs the PerfInsights extension into your VM which is then used to collect configuration and performance-related data on-demand.  This data is automatically compiled into an easy-to-read report with potential issues highlighted.

When to Use

Performance Diagnostics should be used if you suspect a VM is having a performance-related issue.  Even if a VM is having an issue that doesn't appear to be caused by poor performance, Performance Diagnostics can be used to rule it out quickly.  The tool can detect the following things:

  • Known issues and best practice adherence
  • Diagnostic data
  • High resource consumption
  • More complex issues
  • Azure Files performance analysis

Performance Diagnostics is supported on Windows Server 2008 R2 and later with .NET 4.5 installed.  It is also supported on CentOS, RedHat, Ubuntu, Debian, and SLES, but there are some limitations when run on Linux.

Report Types

There are 4 different types of scans to choose from so make sure you pick the right one for your scenario:

  • Quick performance analysis
    • Collects basic information and light performance counters
    • Checks for best practices, known issues, and configuration problems
  • Performance analysis
    • Collects basic information and moderate performance counters
    • Checks for best practices, known issues, configuration problems, and high resource usage
  • Advanced performance analysis
    • Collects basic information and advanced performance data
    • Checks for best practices, known issues, configuration problems, and high resource usage
    • This test can negatively affect system performance and should only be run during a maintenance window
  • Azure Files analysis
    • Collects basic information, moderate performance traces, and Azure Files-related information
    • Checks for best practices, known issues, configuration problems, and performance problems related to Azure Files

Getting Started

The easiest way to get started is by visiting the Performance Diagnostics blade for the VM in the Azure Portal:

perfdiag-1.png

On this page, click the "Run Diagnostics" button in the action bar:

perfdiag-2.png

Select an analysis type and any additional options.  Here, I'm running the Performance Analysis test for 60 seconds:

perfdiag-3.png

If the selected VM doesn't already have the PerfInsights extension installed, the Azure platform will install it at this time.  Once installed, the performance analysis will start.  When it's complete, click the report name in the portal to get the details:

perfdiag-4.png

Here, you can review the key details directly in the portal.  In my example, I started a process that was CPU heavy to show a high CPU alert:

perfdiag-5.png

For more detailed information, use the download report button at the top of the screen:

perfdiag-6.png

This will download a zip file to your computer.  Within the zip is a file named "PerfInsights Report.html" that contains more detailed information.  Here are some example screenshots:

perfdiag-7-(1).png

perfdiag-8.png

perfdiag-9.png

Nothing can totally replace doing a manual in-depth review of the performance a server.  However, Performance Diagnostics is a great way to do a quick review and discover common performance issues in Azure VMs, as well as collect more advanced data that can be reviewed.

Author

Mitchell Grande

Systems Engineer