提高 Azure 高级 SSD 和标准 SSD/HDD 的 IOPS 和吞吐量限制

对于具有 513 GiB 及更高容量的 Azure 高级固态硬盘 (SSD)、标准 SSD 和标准硬盘驱动器 (HDD),可以通过启用性能增强来提高每秒输入/输出操作数 (IOPS) 和吞吐量限制。 启用性能增强功能可改善对需要高IOPS和吞吐量的工作负载(如数据库和事务性工作负载)的体验。 在磁盘上启用性能增强无需额外付费。

启用后,符合条件的磁盘的 IOPS 和吞吐量限制将提高到更高的上限。 若要查看符合条件的磁盘的新 IOPS 和吞吐量限制,请参阅 VM 磁盘的可伸缩性和性能目标一文中以“*已扩展”开头的列。

局限性

  • 只能在 513 GiB 或更高版本的标准 HDD、标准 SSD 和高级 SSD 托管磁盘上启用
  • 只能在新磁盘上启用
    • 若要解决此问题,请创建磁盘的快照,然后从快照创建新磁盘
  • 不支持使用 Azure Site Recovery 恢复的磁盘

先决条件

安装 Azure PowerShell 模块 9.5 或更高版本,或 2.44.0 或更高版本的 Azure CLI 版本。

启用性能加成

需要创建新磁盘才能使用性能增强。 以下脚本演示了如何创建启用性能增强功能的磁盘,并在需要时将其附加到虚拟机。 这些命令已组织成独立步骤,以确保可靠性。

创建资源组

此步骤创建具有唯一名称的资源组。

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_RG="PerfPlusRG$RANDOM_SUFFIX"
export REGION="ChinaNorth2"
az group create -g $MY_RG -l $REGION

结果:

{
  "id": "/subscriptions/xxxxx/resourceGroups/PerfPlusRGxxx",
  "location": "ChinaNorth2",
  "name": "PerfPlusRGxxx",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

创建启用了性能增强的新磁盘

此步骤创建一个 513 GiB(或更大)的新磁盘,启用性能增强功能,并使用有效的 SKU 值。

export MY_DISK="PerfPlusDisk$RANDOM_SUFFIX"
export SKU="Premium_LRS"
export DISK_SIZE=513
az disk create -g $MY_RG -n $MY_DISK --size-gb $DISK_SIZE --sku $SKU -l $REGION --performance-plus true

结果:

{
  "id": "/subscriptions/xxxxx/resourceGroups/PerfPlusRGxxx/providers/Microsoft.Compute/disks/PerfPlusDiskxxx",
  "location": "ChinaNorth2",
  "name": "PerfPlusDiskxxx",
  "properties": {
    "provisioningState": "Succeeded",
    "diskSizeGb": 513,
    "sku": "Premium_LRS",
    "performancePlus": true
  },
  "type": "Microsoft.Compute/disks"
}

尝试将磁盘附加到 VM

此可选步骤尝试将磁盘附加到现有 VM。 它首先检查 VM 是否存在,然后相应地继续。

export MY_VM="NonExistentVM"
if az vm show -g $MY_RG -n $MY_VM --query "name" --output tsv >/dev/null 2>&1; then
    az vm disk attach --vm-name $MY_VM --name $MY_DISK --resource-group $MY_RG 
else
    echo "VM $MY_VM not found. Skipping disk attachment."
fi

结果:

VM NonExistentVM not found. Skipping disk attachment.

从现有磁盘或快照创建启用性能增强的新磁盘

这一系列步骤创建单独的资源组,然后从现有磁盘或快照创建新磁盘。 将SOURCE_URI替换为与磁盘属于同一区域(ChinaNorth2)的有效源 blob URI。

创建用于迁移的资源组

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_MIG_RG="PerfPlusMigrRG$RANDOM_SUFFIX"
export REGION="ChinaNorth2"
az group create -g $MY_MIG_RG -l $REGION

结果:

{
  "id": "/subscriptions/xxxxx/resourceGroups/PerfPlusMigrRGxxx",
  "location": "ChinaNorth2",
  "name": "PerfPlusMigrRGxxx",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

从现有快照或磁盘创建磁盘

# Create a snapshot from the original disk
export MY_SNAPSHOT_NAME="PerfPlusSnapshot$RANDOM_SUFFIX"
echo "Creating snapshot from original disk..."
az snapshot create \
  --name $MY_SNAPSHOT_NAME \
  --resource-group $MY_RG \
  --source $MY_DISK

# Get the snapshot ID for use as source
SNAPSHOT_ID=$(az snapshot show \
  --name $MY_SNAPSHOT_NAME \
  --resource-group $MY_RG \
  --query id \
  --output tsv)

echo "Using snapshot ID: $SNAPSHOT_ID"

# Create the new disk using the snapshot as source
export MY_MIG_DISK="PerfPlusMigrDisk$RANDOM_SUFFIX"
export SKU="Premium_LRS"
export DISK_SIZE=513

az disk create \
  --name $MY_MIG_DISK \
  --resource-group $MY_MIG_RG \
  --size-gb $DISK_SIZE \
  --performance-plus true \
  --sku $SKU \
  --source $SNAPSHOT_ID \
  --location $REGION

结果:

{
  "id": "/subscriptions/xxxxx/resourceGroups/PerfPlusMigrRGxxx/providers/Microsoft.Compute/disks/PerfPlusMigrDiskxxx",
  "location": "ChinaNorth2",
  "name": "PerfPlusMigrDiskxxx",
  "properties": {
    "provisioningState": "Succeeded",
    "diskSizeGb": 513,
    "sku": "Premium_LRS",
    "performancePlus": true,
    "source": "https://examplestorageaccount.blob.core.chinacloudapi.cn/snapshots/sample-chinanorth2.vhd"
  },
  "type": "Microsoft.Compute/disks"
}