Exercice : Dimensionnement correct des machines virtuelles

Effectué

Les machines virtuelles doivent être correctement dimensionnées en fonction de la charge de travail attendue. Une machine virtuelle qui ne dispose pas de la mémoire ou du processeur appropriés croulera sous la charge ou s’exécutera trop lentement pour être efficace.

Tailles de machine virtuelle prédéfinies

Lorsque vous créez une machine virtuelle, vous pouvez fournir une valeur de taille de machine virtuelle qui détermine la quantité de ressources de calcul consacrées à la machine virtuelle, y compris le processeur, le GPU et la mémoire mis à la disposition de la machine virtuelle à partir d’Azure.

Azure propose un ensemble de tailles de machine virtuelle prédéfinies pour Linux et Windows, parmi lesquelles vous pouvez choisir en fonction de l’usage prévu.

Type Tailles Description
Usage général Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Ratio processeur/mémoire équilibré. Convient parfaitement pour les tâches de développement et de test, ainsi que pour les applications et solutions de données de tailles petite à moyenne.
Optimisé pour le calcul Fs, F Ratio processeur/mémoire élevé. Convient pour des applications au trafic moyen, des appliances réseau et des processus de traitement par lots.
Mémoire optimisée Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Ratio mémoire/cœur élevé. Idéale pour les bases de données relationnelles, les caches moyens à grands et l’analytique en mémoire.
Optimisé pour le stockage Ls Débit de disque et E/S élevés. Convient parfaitement pour les bases de données NoSQL et SQL, ainsi que le Big Data.
Optimisé pour le GPU NV, NC Machines virtuelles spécialisées conçues pour les opérations graphiques lourdes et la retouche vidéo.
Hautes performances H, A8-11 Nos machines virtuelles dotées des processeurs les plus puissants avec interfaces réseau haut débit en option (RDMA).

Les tailles disponibles varient en fonction de la région dans laquelle vous créez la machine virtuelle. Vous pouvez obtenir la liste des tailles disponibles en utilisant la commande vm list-sizes. Essayez de taper la commande qui suit dans Azure Cloud Shell :

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

Voici une réponse abrégée pour 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

Spécifier une taille au moment de la création de la machine virtuelle

Nous n’avons pas spécifié de taille quand nous avons créé notre machine virtuelle, donc Azure a sélectionné pour nous une taille universelle par défaut. Nous pouvons cependant spécifier la taille dans la commande vm create en utilisant le paramètre --size. Par exemple, vous pouvez utiliser la commande suivante pour créer une machine virtuelle à deux cœurs :

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"

Avertissement

Votre niveau d’abonnement impose des limites sur le nombre de ressources que vous pouvez créer, ainsi que sur la taille totale de ces ressources. Les limites de quota dépendent de votre type d’abonnement et de votre région. Azure CLI vous informe quand vous dépassez la limite avec une erreur Quota dépassé. Si vous rencontrez cette erreur dans votre abonnement payant, vous pouvez demander gratuitement en ligne l’augmentation des limites associées (jusqu’à 10 000 processeurs virtuels).

Redimensionner une machine virtuelle existante

Nous pouvons également redimensionner une machine virtuelle existante si la charge de travail change, ou si elle n’a pas été correctement dimensionnée lors de la création. Nous allons utiliser la première machine virtuelle que nous avons créée, SampleVM. Avant de demander un redimensionnement, nous devons vérifier que la taille souhaitée est disponible dans le cluster dont notre machine virtuelle fait partie. Nous pouvons utiliser la commande vm list-vm-resize-options :

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

Cette commande retourne la liste de toutes les configurations de taille possibles disponibles dans le groupe de ressources. Si la taille que nous voulons n’est pas disponible dans notre cluster, mais l’est dans la région, nous pouvons libérer la machine virtuelle. Cette commande arrête la machine virtuelle en cours d’exécution et la supprime du cluster actuel sans occasionner de perte de ressources. Ensuite, nous pouvons redimensionner la machine virtuelle, ce qui a pour effet de la recréer dans un nouveau cluster où la configuration de taille est disponible.

Remarque

Le bac à sable Azure est limité à quelques tailles de machine virtuelle.

Pour redimensionner une machine virtuelle, nous utilisons la commande vm resize. Par exemple, vous trouvez peut-être que notre machine virtuelle n’est pas assez puissante pour la tâche qu’elle a à effectuer. Nous pourrions passer à la taille D2s_v3, qui comprend 2 vCores et 8 Go de mémoire. Tapez cette commande dans Cloud Shell :

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

L’exécution de cette commande pour réduire les ressources de la machine virtuelle prend quelques minutes, à l’issue desquelles elle retourne une nouvelle configuration JSON.