練習 - 適當地調整 VM 的大小

已完成

您必須針對預期的工作,適當設定虛擬機器的大小。 VM 如果沒有正確的記憶體或 CPU 數量,將因為負載過低而失敗,或因執行速度過慢而無法生效。

預先定義的 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 為我們選取了預設的一般用途大小。 不過,我們可以使用 --size 參數將大小指定為 vm create 命令的一部分。 例如,您可以使用下列命令來建立二核心虛擬機器:

az vm create \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM2 \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --verbose \
    --size "Standard_DS2_v2"

警告

您的訂用帳戶層會強制執行限制,這類限制為您可以建立的資源數,以及這些資源的總大小。 配額限制取決於您的訂用帳戶類型和區域。 當您超出此限制時,Azure CLI 會以「已超出配額」錯誤通知您。 如果您在自己的付費訂用帳戶中收到這個錯誤,可以透過免費線上要求來要求提高與付費訂用帳戶相關聯的限制 (最高可達 10,000 個 vCPU)。

調整現有 VNet 的大小

如果工作負載變更,或在建立時未正確指定大小,我們也可以調整現有 VM 的大小。 讓我們使用我們建立的第一個 VM,那就是 SampleVM。 在要求調整大小之前,我們必須查看 VM 所屬叢集中是否有可用的所需大小。 我們可以使用 vm list-vm-resize-options 命令:

az vm list-vm-resize-options \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --output table

這會傳回資源群組中可用之所有可能大小設定的清單。 如果我們的叢集中不提供我們想要的大小,但區域提供,我們可以解除配置 VM。 此命令會停止執行中的 VM,並將其從目前的叢集中移除,而不會遺失任何資源。 然後我們可以調整其大小,這會在提供大小設定的新叢集中重新建立 VM。

注意

Microsoft Learn 沙箱受限於一些 VM 大小。

為了調整 VM 大小,我們會使用 vm resize 命令。 例如,也許我們發現 VM 能力不足,無法執行我們想要讓它執行的工作。 我們可以將其放大至 D2s_v3,其中有 2 個虛擬核心與 8 GB 的記憶體。 在 Cloud Shell 中輸入此命令:

az vm resize \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --size Standard_D2s_v3

此命令需要幾分鐘來減少 VM 的資源,完成之後,即會傳回新的 JSON 設定。