练习 - 适当调整 VM 的大小

已完成

必须根据预期的工作适当调整虚拟机的大小。 内存或 CPU 大小不正确的 VM 无法承担负载,或运行过于缓慢而无法有效运行。

注意

本练习可选做。 若要完成本练习,则需要在开始之前创建 Azure 订阅。 如果没有 Azure 帐户或不想暂时创建一个帐户,可以通读说明,以便了解所显示的信息。

注意

在本单元中,你将使用 Azure Cloud Shell 作为终端。 可以通过 Azure 门户Cloud Shell 登录访问 Cloud Shell。 无需在电脑或笔记本电脑上安装任何内容即可使用它。

注意

在本练习中,请将示例中的 myResourceGroupName 替换为现有资源组的名称或为此练习创建的资源组的名称。

预定义的 VM 大小

创建虚拟机时,可提供一个 VM 大小值,该值确定专用于 VM 的计算资源量,包括从 Azure 提供给虚拟机的 CPU、GPU 和内存。

Azure 定义了一组适用于 Linux 和 Windows 的预定义 VM 大小,可供用户根据预期使用情况从中选取所需大小。

类型 大小 说明
常规用途 Dsv3、Dv3、DSv2、Dv2、DS、D、Av2、A0-7 CPU 与内存之比均衡。 适用于开发/测试、小到中型应用程序和数据解决方案。
计算优化 Fs、F 高 CPU 与内存之比。 适用于中等流量的应用程序、网络设备和批处理。
内存优化 Esv3、Ev3、M、GS、G、DSv2、DS、Dv2、D 较高的内存核心比。 适用于关系数据库、中到大型缓存和内存中分析。
存储优化 Ls 高磁盘吞吐量和 IO。 适用于大数据、SQL 和 NoSQL 数据库。
GPU 优化 NV、NC 专门针对大量图形绘制和视频编辑的 VM。
高性能 H、A8-11 功能极其强大的 CPU VM 具有可选的高吞吐量网络接口 (RDMA)。

可用大小根据 VM 的创建区域而不同。 可以使用 vm list-sizes 命令获取可用大小列表。 尝试在 Azure Cloud Shell 中键入以下命令:

az vm list-sizes --location eastus --output table

下面是 eastus 的缩略响应:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
                 2          2048  Standard_B1ms                         1           1047552                    4096
                 2          1024  Standard_B1s                          1           1047552                    2048
                 4          8192  Standard_B2ms                         2           1047552                   16384
                 4          4096  Standard_B2s                          2           1047552                    8192
                 8         16384  Standard_B4ms                         4           1047552                   32768
                16         32768  Standard_B8ms                         8           1047552                   65536
                 4          3584  Standard_DS1_v2                       1           1047552                    7168
                 8          7168  Standard_DS2_v2                       2           1047552                   14336
                16         14336  Standard_DS3_v2                       4           1047552                   28672
                32         28672  Standard_DS4_v2                       8           1047552                   57344
                64         57344  Standard_DS5_v2                      16           1047552                  114688
        ....
                64       3891200  Standard_M128-32ms                  128           1047552                 4096000
                64       3891200  Standard_M128-64ms                  128           1047552                 4096000
                64       3891200  Standard_M128ms                     128           1047552                 4096000
                64       2048000  Standard_M128s                      128           1047552                 4096000
                64       1024000  Standard_M64                         64           1047552                 8192000
                64       1792000  Standard_M64m                        64           1047552                 8192000
                64       2048000  Standard_M128                       128           1047552                16384000
                64       3891200  Standard_M128m                      128           1047552                16384000

在 VM 创建过程中指定大小

由于我们在创建 VM 时未指定大小,因此 Azure 为我们选取了默认通用大小。 但是,我们可以通过 vm create 参数在使用 --size 命令时指定大小。 例如,可使用以下命令创建 2 个核心的虚拟机:

az vm create \
    --resource-group "myResourceGroupName" \
    --name SampleVM2 \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --verbose \
    --size "Standard_DS2_v2"

警告

订阅层强制限制可以创建的资源量,以及这些资源的总大小。 配额限制取决于订阅类型和区域。 Azure CLI 会发出“超出配额”错误,通知你超出了此限制。 如果你在自己的付费订阅中遇到此错误,可通过免费联机请求,请求提高与付费订阅相关的限制(最多可提高至 10,000 个 vCPU)。

重设现有 VM 的大小

如果工作负载发生更改,或在创建时未正确设置 VM 大小,还可重设现有 VM 的大小。 让我们使用我们创建的第一个 VM,即 SampleVM。 在请求重设大小之前,必须检查所需大小在 VM 所属的群集中是否可用。 可使用 vm list-vm-resize-options 命令:

az vm list-vm-resize-options \
    --resource-group "myResourceGroupName" \
    --name SampleVM \
    --output table

此命令将返回资源组中提供的所有可能的大小配置列表。 如果所需大小在群集中不可用,但在区域中可用,可以解除分配 VM 此命令将停止正在运行的 VM,并将其从当前群集中移除而不会丢失任何资源。 然后,可以重设它的大小,这会在可配置大小的新群集中重新创建 VM。

若要重设 VM 大小,请使用 vm resize 命令。 例如,也许会发现虚拟机的性能不足,无法执行所需任务。 可将其提升到 D2s_v3,这时它具有 2 个虚拟核心和 8 GB 的内存。 在 Cloud Shell 中键入下面的命令:

az vm resize \
    --resource-group "myResourceGroupName" \
    --name SampleVM \
    --size Standard_D2s_v3

此命令需要几分钟来减少 VM 的资源,完成操作后,它将返回新的 JSON 配置。