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.
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 :
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>
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
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
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
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 VMrollin-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>