KVM mau desempenho de sincronização IO no convidado Linux

2

Estou configurando o guest do Ubuntu 15.10 virtualizado dentro do servidor Ubuntu 15.04 usando libvirt e KVM.

Armazenamento no sistema host:

# mount | grep ext4
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sdb1 on /media/hdd type ext4 (rw,relatime,data=ordered)

/ dev / sda é um SSD e / dev / sdb é um HDD.

A configuração inicial foi feita usando o virt-manager.

Problema:

O desempenho geral do sistema convidado parece ser bom, no entanto, algumas operações, notavelmente a instalação de pacotes usando o apt-get (e, portanto, a instalação do sistema convidado) são muito lentas.

A imagem de disco do convidado está em formato raw, e eu tentei colocá-la no SSD e no HDD como um arquivo, e também como uma partição separada no HDD. Locais diferentes fazem alguma diferença no desempenho, no entanto, instalar algum pacote usando o apt-get ainda é duas ou três vezes mais lento que no sistema host.

Eu também tentei várias opções de cache de disco do qemu, e usando o cache inseguro parece eliminar completamente o problema . Mas, qualquer outra configuração de cache, incluindo nenhum e writeback , mostra desempenho ruim. É claro que usar inseguro não parece uma solução real.

Aqui está um trecho da configuração xml do convidado:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/sdb2'/>
  <target dev='vda' bus='virtio'/>
  <boot order='2'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</disk>

Ao usar o arquivo de imagem em vez de uma partição que se torna:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source file='/media/hdd/dsi/vm/ubuntu4.bin'/>
  <backingStore/>
  <target dev='vda' bus='virtio'/>
  <boot order='2'/>
  <alias name='virtio-disk0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>

Enquanto tentava consertar o problema, notei que a primeira partição no HDD não estava alinhada corretamente, então recriou a partição com o alinhamento correto (que para esse HDD é 4096). Isso também não ajudou muito.

Eu também tentei configurar elevator = noop para o convidado, sem sucesso.

Quando eu executo um sistema de convidado similar no Windows PC usando o VirtualBox, não sinto essa degradação de desempenho, então espero que haja uma maneira de executar o convidado com o mesmo desempenho no KVM também.

    
por dsi 08.01.2016 / 13:11

1 resposta

0

Tente

cache=directsync

Ou

cache=writethrough

vm.swappiness=1
vm.vfs_cache_pressure=75 (play around with this)

Use prazo em vez de cfq / noop (desempenho ruim em ssds e raid que encontrei).

Ignore o que as pessoas dizem sobre cache = nenhum ou writeback sendo o melhor. Não é sempre assim tão simples.

    
por 03.08.2017 / 20:21