Red Hat Training

A Red Hat training course is available for RHEL 8

11.4.2. Estrangulamento de E/S de disco em máquinas virtuais

Quando várias VMs estão funcionando simultaneamente, elas podem interferir com o desempenho do sistema, utilizando uma E/S em disco excessiva. A aceleração da E/S do disco na virtualização KVM proporciona a capacidade de definir um limite nas solicitações de E/S do disco enviadas pelas VMs para a máquina host. Isto pode evitar que uma VM utilize em excesso recursos compartilhados e tenha impacto no desempenho de outras VMs.

Para ativar a aceleração de E/S de disco, defina um limite para as solicitações de E/S de disco enviadas de cada dispositivo de bloco anexado às VMs para a máquina host.

Procedimento

  1. Use o comando virsh domblklist para listar os nomes de todos os dispositivos de disco em uma VM especificada.

    # virsh domblklist rollin-coal
    Target     Source
    ------------------------------------------------
    vda        /var/lib/libvirt/images/rollin-coal.qcow2
    sda        -
    sdb        /home/horridly-demanding-processes.iso
  2. Encontre o dispositivo de bloco hospedeiro onde o disco virtual que você deseja acionar o acelerador está montado.

    Por exemplo, se você quiser acionar o disco virtual sdb da etapa anterior, a saída a seguir mostra que o disco está montado na partição /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. Estabelecer limites de E/S para o dispositivo de bloco usando o comando virsh blkiotune.

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

    O seguinte exemplo aciona o disco sdb no rollin-coal VM para 1000 operações de leitura e gravação de E/S por segundo e para 50 MB por segundo de leitura e gravação de rendimento.

    # 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

Informações adicionais

  • O estrangulamento de E/S em disco pode ser útil em várias situações, por exemplo, quando VMs pertencentes a diferentes clientes estão funcionando no mesmo host, ou quando são dadas garantias de qualidade de serviço para diferentes VMs. O estrangulamento de E/S de disco também pode ser usado para simular discos mais lentos.
  • O estrangulamento de E/S pode ser aplicado independentemente a cada dispositivo de bloco acoplado a uma VM e suporta limites de rendimento e operações de E/S.
  • A Red Hat não suporta o uso do comando virsh blkdeviotune para configurar a estrangulamento de E/S em VMs. Para mais informações sobre recursos não suportados ao usar o RHEL 8 como um host VM, consulte Recursos não suportados na virtualização do RHEL 8.