Desempenho do convidado do KVM afetado por tempos de espera muito longos do disco virtblk

6

Eu tenho vários convidados do KVM rodando no Ubuntu 14.04 usando o libvirt. Seu desempenho é muito pobre. A natureza intermitente do fraco desempenho com uma variabilidade de ordem de magnitude em testes de benchmark simples e aparente influência da atividade em outras VMs sugere strongmente que o problema é a contenção de recursos no host. O monitoramento Sar nos convidados revela um problema com os discos virtblk que precisam aguardar um tempo muito grande para que as solicitações de E / S sejam atendidas. Por exemplo,

00:00:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00:05:01     dev253-0      0.10      0.00      1.39     14.34      0.00 682539.72      0.14      0.00

O tempo de espera é consistentemente extremamente alto e é semelhante em todos os convidados.

Uma configuração de disco típica é

<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/var/lib/libvirt/images/Base-dev-0002-clone.img'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>

Várias coisas foram tentadas nos convidados, incluindo configurações de cache e io = nativo na linha do driver, clonagem do armazenamento bruto de arquivos img para um volume lógico, elevator = deadline, virtio_blk.use_bio = 1, mas sem impacto significativo .

Eu entendo que um disco virtual deve sofrer um impacto no desempenho, mas isso é extremo.

Qual é o tempo típico de espera para um convidado KVM?

Tendo em mente minha alegação de contenção de recursos, quais recursos, ulimits etc. podem precisar ser alocados no host? O anfitrião tem muitos recursos e não mostra sinais óbvios de problemas.

    
por Pukeko 17.07.2014 / 09:36

1 resposta

2

Recentemente, tenho o mesmo problema

# iostat -dx 60
Linux 3.13.0-32-generic (hostname)  Wednesday, 04 March, 2015   _x86_64_    (6 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     2.46   51.49    4.12  1742.66   325.36    74.38     0.05  770.46  487.83 4300.67   0.15   0.81
scd0              0.00     0.00    0.08    0.00     0.31     0.00     8.00     0.00    0.73    0.73    0.00   0.73   0.01

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.03    0.02    0.20     0.13     0.93     9.85     0.00 35787.38    4.00 38769.33   0.31   0.01
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Atualizando o kernel e instalando linux-headers e linux-headers-generic nos convidados do KVM, corrija meu problema de I / O. Reinicie após a instalação.

# aptitude install linux-headers-3.13.0-46 linux-headers-3.13.0-46-generic linux-image-3.13.0-46-generic

Após a instalação:

# iostat -dx 60
Linux 3.13.0-46-generic (hostname)  Wednesday, 04 March, 2015   _x86_64_    (6 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.36   19.36    0.42   227.23     4.51    23.44     0.01    0.50    0.45    2.92   0.14   0.28
scd0              0.00     0.00    0.04    0.00     0.18     0.00     8.00     0.00    0.36    0.36    0.00   0.36   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
    
por chr1x2 04.03.2015 / 03:57