O KVM faz com que a alta CPU seja carregada quando o cache = 'none'

1

Eu segui as instruções no link . Host é Debian Squeeze Kernel 3.2, QEMU 1.0, libvirt 0.9.12 (todos do squeeze-backport). Todos os 4 convidados são Debian Squeeze Kernel 3.2, também.

Então, minhas configurações no XML de convidado são

<cpu model='host-passthrough'/>
<disk [...]/>
   <driver name='qemu' type='raw' cache='none'/>
   <target [...] bus='virtio'/>
</disk>
<interface [...]>
   <model type='virtio'/>
</interface>

O agendador de IO dos convidados está definido como noop. No host eu tentei noop / deadline / cfq sem diferenças significativas de desempenho, para mim. Todo o armazenamento de hóspedes é fornecido pela LVM. Ao usar cache='none' e todos os convidados não têm uma carga notável, a carga média de CPU de 15 minutos no host sobe para 3-4. Mas ao usar cache='writeback' , a CPU do host carregada sobe para menos de 1. Alguém pode explicar, por que as configurações sugeridas para o LVM causam uma carga maior no host?

BTW: Ao executar benchmarks de disco, a opção none resulta em um desempenho de IO maior do que writeback .

    
por rabudde 14.09.2012 / 10:53

1 resposta

2

OK, com a opção adicional io='native' na seção de disco e o programador IO cfq no sistema host, obtendo os melhores resultados para o meu sistema. A taxa de E / S é quase a mesma para todos os valores da opção io no XML convidado e para o planejador de E / S no host e guest, apenas cache='unsafe' fornece um desempenho significativamente maior. Mas somente com io='native' , noop scheduler em guest e cfq scheduler no host, receberei a menor carga de CPU.

    
por 14.09.2012 / 13:41