練習 - 適當地調整 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 設定。