Esercizio - Dimensionamento corretto delle macchine virtuali

Completato

È necessario ridimensionare le macchine virtuali in base al carico di lavoro previsto. Una macchina virtuale senza la corretta quantità di memoria o CPU non riesce a funzionare in condizioni di carico o può risultare troppo lenta e quindi poco efficiente.

Dimensioni VM predefinite

Quando si crea una macchina virtuale, è possibile specificare un valore di dimensione della macchina virtuale che determina la quantità di risorse di calcolo dedicate alla macchina virtuale, tra cui CPU, GPU e memoria rese disponibili per la macchina virtuale da Azure.

Azure definisce un set di dimensioni di macchina virtuale predefinite per Linux e Windows tra cui scegliere in base all'utilizzo previsto.

Type Dimensioni Descrizione
Utilizzo generico Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Rapporto equilibrato tra CPU e memoria. Soluzione ideale per sviluppo/test e soluzioni di dati e applicazioni medio-piccole.
Con ottimizzazione per il calcolo Fs, F Rapporto elevato tra CPU e memoria. Soluzione idonea per applicazioni con livelli medi di traffico, appliance di rete e processi batch.
Ottimizzato per la memoria Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Rapporto elevato tra memoria e core. Soluzione ideale per database relazionali, cache medio-grandi e analisi in memoria.
Con ottimizzazione per l'archiviazione Ls I/O e velocità effettiva del disco elevati. Soluzione ideale per Big Data, database SQL e NoSQL.
Ottimizzate per la GPU NV, NC VM specializzate ottimizzate per livelli intensivi di rendering della grafica ed editing di video.
Prestazioni elevate H, A8-11 Le macchine virtuali con CPU più potenti, con interfacce di rete ad alta velocità effettiva opzionali (RDMA).

Le dimensioni disponibili variano in base all'area in cui si crea la macchina virtuale. È possibile ottenere un elenco delle dimensioni disponibili tramite il comando vm list-sizes. Provare a digitare il comando seguente in Azure Cloud Shell:

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

Ecco una risposta abbreviata per 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

Specificare le dimensioni durante la creazione della macchina virtuale

Al momento della creazione della macchina virtuale non è stata specificata una dimensione. Azure ha pertanto selezionato automaticamente una dimensione predefinita per utilizzo generico. È tuttavia possibile specificare la dimensione come parte del comando vm create usando il parametro --size. Per creare una macchina virtuale con due core, ad esempio, è possibile usare il comando seguente:

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"

Avviso

Il livello di sottoscrizione applica i limiti al numero di risorse che è possibile creare e alle dimensioni totali di queste risorse. I limiti di quota dipendono dal tipo di sottoscrizione e dall'area geografica. Quando il limite viene superato, l'interfaccia della riga di comando di Azure visualizza l'errore Quota superata. Se viene visualizzato questo errore nella sottoscrizione a pagamento, è possibile richiedere l'aumento dei limiti associati alla sottoscrizione a pagamento (fino a 10.000 vCPU) inviando una richiesta online gratuita.

Ridimensionare una macchina virtuale esistente

È anche possibile ridimensionare una macchina virtuale esistente se si verifica una variazione del carico di lavoro o se non è stata definita la dimensione corretta in fase di creazione. Si userà ora la prima macchina virtuale creata, SampleVM. Prima di richiedere un ridimensionamento, è necessario verificare se la dimensione desiderata è disponibile nel cluster di cui fa parte la macchina virtuale. È possibile usare il comando vm list-vm-resize-options:

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

Questo comando restituisce un elenco di tutte le possibili configurazioni di dimensione che sono disponibili nel gruppo di risorse. Se la dimensione desiderata non è disponibile nel cluster ma è disponibile nell'area, è possibile deallocare la macchina virtuale. Questo comando arresta la macchina virtuale in esecuzione e la rimuove dal cluster corrente senza che si verifichi alcuna perdita di risorse. È quindi possibile ridimensionarla, creando nuovamente la macchina virtuale in un altro cluster in cui è disponibile la configurazione delle dimensioni.

Nota

L'ambiente sandbox di Microsoft Learn è limitato ad alcune dimensioni di macchina virtuale.

Per ridimensionare una macchina virtuale si userà il comando vm resize. Ad esempio se si riscontra che la macchina virtuale è sottostimata per l'attività che deve eseguire, È possibile potenziarla fino a D2s_v3 ottenendo così 2 vCore e 8 GB di memoria. Digitare questo comando in Cloud Shell:

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

Il comando impiega alcuni minuti per ridurre le risorse della macchina virtuale e al termine dell'esecuzione restituisce una nuova configurazione JSON.