18.5. Optimiser les performances des E/S des machines virtuelles


Les capacités d'entrée et de sortie (E/S) d'une machine virtuelle (VM) peuvent limiter de manière significative l'efficacité globale de la VM. Pour y remédier, vous pouvez optimiser les E/S d'une VM en configurant les paramètres d'E/S par bloc.

18.5.1. Optimisation des E/S par blocs dans les machines virtuelles

Lorsque plusieurs périphériques de bloc sont utilisés par une ou plusieurs machines virtuelles, il peut être important d'ajuster la priorité d'E/S de certains périphériques virtuels en modifiant leur adresse I/O weights.

L'augmentation du poids d'E/S d'un périphérique augmente sa priorité pour la bande passante d'E/S et lui permet donc de disposer de plus de ressources hôte. De même, la réduction du poids d'un périphérique lui permet de consommer moins de ressources hôte.

Note

La valeur weight de chaque appareil doit être comprise entre 100 et 1000. La valeur peut également être 0, ce qui supprime ce dispositif des listes par dispositif.

Procédure

Pour afficher et définir les paramètres d'E/S en bloc d'une VM :

  1. Affiche les paramètres actuels de <blkio> pour une VM :

    # virsh dumpxml VM-name

    <domain>
      [...]
      <blkiotune>
        <weight>800</weight>
        <device>
          <path>/dev/sda</path>
          <weight>1000</weight>
        </device>
        <device>
          <path>/dev/sdb</path>
          <weight>500</weight>
        </device>
      </blkiotune>
      [...]
    </domain>
  2. Modifier le poids des E/S d'un appareil spécifié :

    # virsh blkiotune VM-name --device-weights device, I/O-weight

    Par exemple, la procédure suivante modifie le poids du périphérique /dev/sda dans la VM testguest1 pour le porter à 500.

    # virsh blkiotune testguest1 --device-weights /dev/sda, 500

18.5.2. Limitation des entrées/sorties de disques dans les machines virtuelles

Lorsque plusieurs machines virtuelles fonctionnent simultanément, elles peuvent perturber les performances du système en utilisant un nombre excessif d'entrées/sorties sur disque. La limitation des E/S disque dans la virtualisation KVM permet de fixer une limite aux demandes d'E/S disque envoyées par les machines virtuelles à la machine hôte. Cela permet d'éviter qu'une machine virtuelle ne surutilise les ressources partagées et n'affecte les performances des autres machines virtuelles.

Pour activer la limitation des E/S de disque, définissez une limite pour les demandes d'E/S de disque envoyées à la machine hôte à partir de chaque périphérique de bloc attaché aux machines virtuelles.

Procédure

  1. Utilisez la commande virsh domblklist pour répertorier les noms de tous les périphériques de disque d'une VM donnée.

    # virsh domblklist rollin-coal
    Target     Source
    ------------------------------------------------
    vda        /var/lib/libvirt/images/rollin-coal.qcow2
    sda        -
    sdb        /home/horridly-demanding-processes.iso
  2. Recherchez le périphérique de bloc hôte sur lequel est monté le disque virtuel que vous souhaitez supprimer.

    Par exemple, si vous souhaitez accélérer le disque virtuel sdb de l'étape précédente, la sortie suivante montre que le disque est monté sur la partition /dev/nvme0n1p3.

    $ lsblk
    NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    zram0                                         252:0    0     4G  0 disk  [SWAP]
    nvme0n1                                       259:0    0 238.5G  0 disk
    ├─nvme0n1p1                                   259:1    0   600M  0 part  /boot/efi
    ├─nvme0n1p2                                   259:2    0     1G  0 part  /boot
    └─nvme0n1p3                                   259:3    0 236.9G  0 part
      └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0    0 236.9G  0 crypt /home
  3. Définissez les limites d'E/S pour le périphérique de bloc à l'aide de la commande virsh blkiotune.

    # virsh blkiotune VM-name --parameter device,limit

    L'exemple suivant limite le disque sdb de la VM rollin-coal à 1 000 opérations d'E/S en lecture et en écriture par seconde et à 50 Mo par seconde de débit en lecture et en écriture.

    # virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device-write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec /dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800

Informations complémentaires

  • L'étranglement des E/S disque peut être utile dans diverses situations, par exemple lorsque des machines virtuelles appartenant à différents clients tournent sur le même hôte, ou lorsque des garanties de qualité de service sont données pour différentes machines virtuelles. La limitation des E/S disque peut également être utilisée pour simuler des disques plus lents.
  • La limitation des E/S peut être appliquée indépendamment à chaque périphérique bloc attaché à une VM et permet de limiter le débit et les opérations d'E/S.
  • Red Hat ne prend pas en charge l'utilisation de la commande virsh blkdeviotune pour configurer la limitation des E/S dans les machines virtuelles. Pour plus d'informations sur les fonctionnalités non prises en charge lors de l'utilisation de RHEL 9 en tant qu'hôte de VM, voir Fonctionnalités non prises en charge dans la virtualisation RHEL 9.

18.5.3. Activation de virtio-scsi multi-queues

Lorsque vous utilisez des périphériques de stockage virtio-scsi dans vos machines virtuelles (VM), la fonction multi-queue virtio-scsi améliore les performances et l'évolutivité du stockage. Elle permet à chaque unité centrale virtuelle (vCPU) de disposer d'une file d'attente distincte et d'une interruption à utiliser sans affecter les autres vCPU.

Procédure

  • Pour activer la prise en charge de virtio-scsi multi-queues pour une VM spécifique, ajoutez les éléments suivants à la configuration XML de la VM, où N est le nombre total de files d'attente vCPU :

    <controller type='scsi' index='0' model='virtio-scsi'>
       <driver queues='N' />
    </controller>
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.