Exercício – Dimensionar as VMs corretamente

Concluído

As máquinas virtuais precisam ser dimensionadas adequadamente para o trabalho esperado. Uma VM sem a quantidade correta de memória ou de CPU falhará quando a carga aumentar ou ficará muito lenta a ponto de prejudicar sua eficiência.

Tamanhos de VM predefinidos

Ao criar uma máquina virtual, você pode fornecer um valor de tamanho de VM que determina a quantidade de recursos de computação dedicados à VM, incluindo CPU, GPU e memória disponibilizadas para a máquina virtual do Azure.

O Azure define um conjunto predefinido de tamanhos de VM para Linux e Windows para que você escolha com base no uso esperado.

Type Tamanhos Descrição
Uso geral Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Equilíbrio entre CPU e memória. Ideal para Desenvolvimento/Teste e para soluções de dados e aplicativos de pequeno a médio porte.
Computação otimizada Fs, F Relação alta entre CPU e memória. Bom para aplicativos de tráfego médio, dispositivos de rede e processos em lote.
Otimizado para memória Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Relação de memória/núcleo alta. Ótima para banco de dados relacionais, caches médios a grandes e análises na memória.
Otimizado para armazenamento Ls Taxa de transferência de disco e E/S altas. Ideal para Big Data, SQL e bancos de dados NoSQL.
Otimizado para GPU NV, NC VMs especializadas, destinadas para renderização gráfica e edição de vídeo pesadas.
Alto desempenho H, A8-11 Nossas VMs de CPU mais potentes com RDMA (adaptadores de rede de alta taxa de transferência) opcionais.

Os tamanhos disponíveis variam de acordo com a região em que você está criando a VM. Você pode obter uma lista dos tamanhos disponíveis usando o comando vm list-sizes. Tente digitar o seguinte comando no Azure Cloud Shell:

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

Aqui está uma resposta abreviada para 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

Especificar um tamanho durante a criação da VM

Não especificamos um tamanho quando criamos nossa VM. Portanto, o Azure selecionou para nós um tamanho padrão de uso geral. No entanto, podemos especificar o tamanho como parte do comando vm create usando o parâmetro --size. Por exemplo, você pode usar o seguinte comando para criar uma máquina virtual de dois núcleos:

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"

Aviso

O tipo de assinatura impõe limites sobre quantos recursos você pode criar, bem como o tamanho total desses recursos. Os limites de cota dependem do tipo de assinatura e da região. A CLI do Azure informa quando esse limite é excedido com o erro Cota excedida. Se esse erro ocorrer em sua assinatura paga, solicite o aumento dos limites associados a ela (até 10.000 vCPUs) por meio de uma solicitação online gratuita.

Redimensionar uma VM existente

Também podemos redimensionar uma VM existente se ela foi dimensionada incorretamente no momento da criação ou se a carga de trabalho é alterada. Vamos usar a primeira VM que criamos, SampleVM. Antes de solicitar um redimensionamento, devemos verificar se o tamanho desejado está disponível no cluster do qual nossa VM faz parte. Podemos usar o comando vm list-vm-resize-options:

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

Esse comando retorna uma lista de todas as configurações de tamanho possíveis disponíveis no grupo de recursos. Se o tamanho desejado não está disponível em nosso cluster, mas está disponível na região, podemos desalocar a VM. Esse comando interrompe a VM em execução e a remove do cluster atual sem perda de nenhum recurso. Nós podemos então redimensioná-lo, o que recria a VM em um novo cluster onde a configuração de tamanho está disponível.

Observação

A área restrita do Microsoft Learn está limitada a alguns tamanhos de VM.

Para redimensionar uma VM, usaremos o comando vm resize. Por exemplo, talvez a VM não tenha potência suficiente para a tarefa que precisa executar. Poderíamos aumentar para um D2s_v3, em que ela tem 2 vCores e 8 GB de memória. Digite este comando no Cloud Shell:

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

Este comando leva alguns minutos para reduzir os recursos da VM e, ao terminar, ele retorna uma nova configuração JSON.