Back to Blog

Low-latency Design with Proximity Placement Groups and Ultra Disks

Complete AZ-104 tutorial on Availability Sets/Zones. Learn PPG placement, zone alignment, UltraSSD constraints, throughput tuning.

Low-latency Design with Proximity Placement Groups and Ultra Disks

Low-latency Design with Proximity Placement Groups and Ultra Disks

Introduction

In today's cloud-based environments, achieving low latency is critical for performance-sensitive applications, such as financial trading platforms, gaming servers, and real-time data analytics. Proximity Placement Groups (PPGs) and Azure Ultra Disks are two powerful Azure features designed for this purpose. PPGs ensure that Azure compute resources are physically close to each other, minimizing latency, while Ultra Disks provide high-throughput, low-latency disk storage for data-intensive workloads.

For the AZ-104 certification, understanding how to leverage PPGs and Ultra Disks is essential. These features are particularly relevant when deploying virtual machines (VMs) in Availability Sets or Availability Zones. They help ensure that applications remain responsive and performant in the face of varying loads and potential failures.

In this tutorial, we will explore the core concepts, syntax/configuration, practical examples, and best practices for utilizing Proximity Placement Groups and Ultra Disks effectively in Azure.


Prerequisites

Before diving into the tutorial, ensure you have the following:

  • An Azure subscription with permissions to create resources.
  • Basic knowledge of Azure's Resource Manager model and Role-Based Access Control (RBAC).
  • Familiarity with Azure CLI, PowerShell, and Azure Portal.
  • The following services should be enabled in your subscription:
    • Proximity Placement Groups
    • Ultra Disks

Core Concepts

Definitions

  • Proximity Placement Group (PPG): A logical group that ensures Azure resources are physically close to each other, which is essential for workloads that require low latency.
  • Ultra Disks: High-performance storage options in Azure that provide high throughput, low latency, and the ability to dynamically change performance without restarting VMs.

Architecture

PPGs can be used in conjunction with Availability Sets and Zones:

  • Availability Set: A logical grouping of VMs that provides redundancy and availability within a single data center.
  • Availability Zone: A physically isolated location within an Azure region that protects applications and data from data center failures.

When to Use

You should use PPGs when deploying applications that require minimal latency between VMs, such as:

  • High-frequency trading applications
  • Real-time gaming servers
  • Data analytics workloads

Limitations

  • PPGs cannot span multiple Availability Zones.
  • Ultra Disks can only be used as data disks and must be attached to VMs that support Ultra Disk capabilities.

Pricing Notes

Pricing for PPGs is generally incorporated into the overall costs of the compute resources. Ultra Disk pricing is based on size, IOPS, and throughput settings.


Syntax/Configuration

Creating a Proximity Placement Group

Azure CLI

az ppg create --name myPPG --resource-group myResourceGroup --location eastus --intent-vm-sizes Standard_E64s_v4 Standard_M416ms_v2

PowerShell

New-AzProximityPlacementGroup -ResourceGroupName "myResourceGroup" -Name "myPPG" -Location "eastus" -IntentVmSizes "Standard_E64s_v4","Standard_M416ms_v2"

Creating an Ultra Disk

Azure CLI

az disk create --resource-group myResourceGroup --name myUltraDisk --size-gb 64 --sku UltraSSD_LRS --disk-iops-read-write 3000 --disk-mbps-read-write 100

PowerShell

$disk = New-AzDiskConfig -Location "eastus" -CreateOption Empty -DiskSizeGB 64 -Sku "UltraSSD_LRS" -DiskIOPSReadWrite 3000 -DiskMBpsReadWrite 100
New-AzDisk -ResourceGroupName "myResourceGroup" -DiskName "myUltraDisk" -Disk $disk

Practical Examples

Example 1: Create a Proximity Placement Group

Create a PPG to group VMs that require low latency.

az ppg create --name myPPG --resource-group myResourceGroup --location eastus
  • Explanation: This command creates a new PPG named myPPG in the specified resource group.

Example 2: List Proximity Placement Groups

List all PPGs in your subscription.

az ppg list -o table
  • Explanation: This command outputs a table showing all PPGs.

Example 3: Create an Ultra Disk and Attach to a VM

  1. Create an Ultra Disk.
az disk create --resource-group myResourceGroup --name myUltraDisk --size-gb 64 --sku UltraSSD_LRS --disk-iops-read-write 3000 --disk-mbps-read-write 100
  1. Attach it to a VM.
az vm disk attach --resource-group myResourceGroup --vm-name myVM --name myUltraDisk
  • Explanation: The commands above create an Ultra Disk and attach it to an existing VM.

Example 4: Adjust Ultra Disk Performance

Adjust the performance settings of an Ultra Disk.

az disk update --resource-group myResourceGroup --name myUltraDisk --disk-iops-read-write 6000 --disk-mbps-read-write 200
  • Explanation: This command modifies the IOPS and throughput of the specified Ultra Disk.

Example 5: Move a VM to a Proximity Placement Group

  1. Stop the VM.
az vm deallocate --resource-group myResourceGroup --name myVM
  1. Update the VM configuration.
az vm update --resource-group myResourceGroup --name myVM --proximity-placement-group myPPG
  • Explanation: The VM is first deallocated, then updated to associate it with the PPG.

Example 6: Create VMs in a Proximity Placement Group

az vm create --resource-group myResourceGroup --name myVM1 --image UbuntuLTS --size Standard_D2s_v3 --proximity-placement-group myPPG
  • Explanation: This command creates a VM in the specified PPG.

Example 7: Use Ultra Disks in an Azure Kubernetes Service (AKS)

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --enable-ultra-ssd
  • Explanation: This command creates an AKS cluster that supports Ultra Disks.

Example 8: Monitor Disk Performance

Check the performance metrics of an Ultra Disk.

az monitor metrics list --resource myUltraDisk --metric "UsedCapacity" --interval PT1H
  • Explanation: This command retrieves the performance metrics for the specified Ultra Disk.

Real-World Scenarios

Scenario 1: Financial Trading Platform

A trading platform that processes thousands of transactions per second requires both low latency and high throughput. By deploying VMs in a PPG and using Ultra Disks for data storage, the platform minimizes latency while ensuring robust performance.

Scenario 2: Online Gaming Server

An online gaming server can leverage PPGs to place game instances close to each other, reducing lag for players. Additionally, using Ultra Disks allows for quick loading times and smooth gameplay.

Scenario 3: Data Analytics Pipeline

A data analytics pipeline processing large datasets can benefit from Ultra Disks' high throughput capabilities while ensuring that processing VMs are colocated in a PPG to maximize performance.


Best Practices

  1. Use PPGs with Accelerated Networking: For optimal performance, combine PPGs with Azure's accelerated networking to reduce latency further.
  2. Plan for VM Sizes: When creating a PPG, specify all required VM sizes upfront to avoid deployment failures.
  3. Monitor Resource Usage: Regularly analyze the metrics for Ultra Disks to adjust performance settings based on workload demands.
  4. Use Availability Zones: For critical applications, deploy VMs across multiple Availability Zones while using PPGs for low latency.
  5. Test Performance: Conduct real-world tests to validate inter-zone latencies and performance impacts of your deployments.

Common Errors

Error 1: Insufficient Quota

Message: "Quota exceeded for resource type 'VMs'."

  • Cause: You have reached the limit for the number of VMs in your subscription.
  • Fix: Request a quota increase through the Azure portal.

Error 2: Invalid Proximity Placement Group

Message: "The proximity placement group specified is not valid."

  • Cause: The PPG may not exist or is misconfigured.
  • Fix: Verify the PPG name and existence.

Error 3: Disk Not Attached

Message: "The specified disk is not attached to the VM."

  • Cause: The disk may not have been properly attached.
  • Fix: Ensure that you attach the disk using the correct commands.

Error 4: Deployment Failed

Message: "Deployment failed."

  • Cause: Insufficient resources or incorrect configurations.
  • Fix: Review the deployment parameters and ensure all resources are available.

Related Services/Commands

Service/Command Description
Proximity Placement Groups Logical grouping for low-latency deployments.
Azure Ultra Disks High-performance storage for VMs.
Availability Sets Redundancy within a single data center.
Availability Zones Fault-isolated locations for higher availability.
Azure CLI Command-line interface for managing Azure resources.

Automation Script

Here’s a PowerShell script to automate the creation of a Proximity Placement Group and a VM configured with an Ultra Disk:

# Variables
$resourceGroup = "myResourceGroup"
$location = "eastus"
$ppgName = "myPPG"
$vmName = "myVM"
$diskName = "myUltraDisk"

# Create Resource Group
New-AzResourceGroup -Name $resourceGroup -Location $location

# Create Proximity Placement Group
$ppg = New-AzProximityPlacementGroup -ResourceGroupName $resourceGroup -Name $ppgName -Location $location -IntentVmSizes "Standard_D2s_v3"

# Create Ultra Disk
$diskConfig = New-AzDiskConfig -Location $location -CreateOption Empty -DiskSizeGB 64 -Sku "UltraSSD_LRS" -DiskIOPSReadWrite 3000 -DiskMBpsReadWrite 100
New-AzDisk -ResourceGroupName $resourceGroup -DiskName $diskName -Disk $diskConfig

# Create VM in Proximity Placement Group
New-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Location $location -Image "Win2016Datacenter" -Size "Standard_D2s_v3" -ProximityPlacementGroup $ppg.Id -AttachDataDisk $diskName

Conclusion

In summary, Proximity Placement Groups and Ultra Disks are crucial for designing low-latency, high-performance applications in Azure. By understanding how to configure and deploy these resources effectively, Azure Administrators can ensure optimal performance for demanding workloads.

For further learning, consider exploring additional Azure documentation and tutorials on availability options, performance tuning, and resource management to prepare for the AZ-104 certification.


References