Configuração e correções ótimas do kernel para o host KVM

6

Eu tenho um servidor (single socket Nehalem com 24GB de RAM) atuando principalmente como um host KVM contendo um monte de Windows Servers e algumas instâncias do Linux (tickless).

Eu costumo compilar meus kernels de desktop preemptíveis com o timer tickless de 1000 Hz, usando o agendador de CPU BFS (via o conjunto de patch CK) e o agendador de disco BFQ. Nos servidores, eu faço tudo baunilha com 100 Hz não-tickless usando CFQ e sem preempção forçada.

No entanto, eu não tenho tempo nem habilidade para fazer benchmarking sobre isso, então estou procurando alguma informação sobre as configurações ótimas para um kernel KVM. A taxa de transferência das máquinas virtuais se beneficiaria de um kernel de 1000 Hz?

E seria uma má ideia usar o agendador BFS? Ouvi dizer que isso pode trazer benefícios para os servidores de CPU única também. Também estou pensando em usar o planejador de disco BFQ com a opção low_latency desativada. / p>

Alguém pode me apontar na direção certa aqui? Eu sou uma novata quando se trata de coisas do sistema de baixo nível. : -)

    
por Edward Saksehånd 26.09.2013 / 14:47

2 respostas

8

Para começar, a referência "canônica" para o ajuste do hipervisor KVM ainda é excelente para a IBM Melhores Práticas para KVM que eu sugiro que você passe por ponto-a-ponto.

Algumas coisas que você quase certamente desejará fazer depois de testar cuidadosamente sua carga de trabalho:

  • Use os drivers do virtio nos convidados do Windows . Você já deveria estar fazendo isso; Se você não for, isso lhe dará uma aceleração muito perceptível. Os convidados do Linux devem usar automaticamente o virtio da instalação, mas se você estiver virtualizando sistemas Linux muito antigos, verifique-os novamente.

  • Despejar BFS. Foi projetado para cargas de desktop de baixa latência em hardware de baixo custo e seu autor admite que não "escalará para hardware massivo". Não inspira confiança.

  • Descarta BFQ / CFQ. Praticamente todos obtêm o melhor desempenho com o agendador de E / S de deadline e, embora você deva testar, provavelmente não será uma exceção.

  • Certifique-se de que a fusão da página de amostras do kernel esteja em execução e ajuste-a adequadamente. Isso pode reduzir significativamente os requisitos de memória em seu hipervisor, especialmente quando vários convidados executam o mesmo sistema operacional.

  • Ao usar o armazenamento local, use dispositivos de bloco brutos, como volumes lógicos LVM, em vez de arquivos de imagem. Isso remove uma camada de abstração do disco I / O.

Existem muitas outras coisas abordadas no guia da IBM a que me referi anteriormente, mas estas devem dar-lhe o maior retorno possível.

    
por 04.10.2013 / 00:56
1

Na minha experiência, distribuições como o RHEL são calibradas o suficiente para fornecer um bom desempenho das máquinas KVM, e todos os benchmarks são feitos sobre eles. Se você deseja extrair porcentagens extras de desempenho, é necessário procurar highr na pilha - em virtio-scsi e data-plane (para desempenho de disco) ou 802.1Qbg / h para desempenho de rede extra.

    
por 26.09.2013 / 21:58