KVM e JBoss Java Application Server

2

Temos uma grande implantação do Xen em execução no RHEL e no CentOS e recentemente começamos a analisar o KVM, já que é onde o futuro das VMs está no Linux.

Podemos carregar o servidor e fazer tudo funcionar sem problemas. No entanto, quando carregamos um novo com o JBoss (4.2 Community edition, Sun JDK 6) e carregamos um EAR grande, o servidor fica um pouco louco. O% sy irá saltar para 80-99% e apenas travar por grandes períodos de tempo, nós vemos um salto similar em% us na máquina host. Nós inicialmente a princípio isso pode ser I / O como parece acontecer no início do JBoss, mas depois iria "esfriar" depois que tudo fosse carregado. Fizemos alguns testes extraindo alguns arquivos tar.gz grandes e usando jar -xvf no ouvido, mas não pudemos recriar.

Então, começamos a pensar que isso pode ser algum tipo de problema de acesso à memória. Nós carregamos um programa-c que geraria muita atividade de memória e com certeza nós vimos os picos novamente. Não é tão alta mente, mas nós vimos saltar. Nós então escrevemos um pequeno programa java para fazer a mesma coisa e com certeza nós vimos ele pular novamente.

Alguma opinião sobre o que pode estar causando isso? É assim que funciona o KVM?

Como observação, NÃO vemos esse comportamento em nenhuma outra configuração. Xen, VMWare e / ou ferro nativo. O sistema parece um pouco mais lento que os nossos Xen / VMware.

    
por telstone 18.03.2010 / 15:14

4 respostas

1

Uma pergunta e uma sugestão:

  1. Qual sistema de arquivos você está usando? No Fedora 12 & 13 sistemas tenho visto excelente desempenho usando ext4, mas desempenho abismal usando btrfs.

  2. Estendendo-se ao comentário @Ophidian - experimente com o Fedora 13 para ver como ele é executado usando bibliotecas KVM e libvirt recentes.

por 28.08.2010 / 05:40
0

Gostaria de ver o código de teste usado para recriar isso, se possível. Estou testando muitos convidados do KVM o tempo todo, e um benchmark extra é sempre bom, especialmente se for conhecido por causar problemas

Conhecer a configuração da VM também ajudará - quanto RAM, CPUs, tipos de disco e rede, etc.

    
por 18.03.2010 / 15:53
0

Eu me pergunto se você está de alguma forma batendo swap na máquina host.

Você / você poderia tentar isso no Fedora 12 para ver se as versões mais recentes de tudo (kvm, libvirt, kernel, ksm) exibem esse mesmo comportamento? O KSM foi adicionado no Fedora 12 e supostamente fornece gerenciamento de memória muito mais eficiente / melhor.

Além da sugestão do 3dinfluence de entrar em contato com o suporte da Red Hat e a lista de discussão KVM, eu também sugiro a lista fedora-virt como um grande número de desenvolvedores para libvirt, kvm e o resto do ecossistema de virtualização do Fedora. o código%. Eles geralmente são muito receptivos e prestativos.

    
por 18.03.2010 / 16:57
0

Você está executando o ksmd (o de-duper da memória compartilhada)? Isso pode ter um pouco de sobrecarga da CPU no sistema hipervisor e pode estar envolvido em barracas relacionadas à memória.

Também pode valer a pena ver se fixar a VM a um núcleo ajuda - você pode descobrir que o convidado sendo transferido do núcleo para o núcleo (ou entre processadores) está causando o esvaziamento de cache em cargas de trabalho que consomem muita memória. / p>

Tendo em conta que cada VM é um processo no que diz respeito ao hipervisor, pode ser esclarecedor anexar o strace ao processo guest e ver se existem quaisquer syscalls que sejam obviamente problemáticas.

Finalmente, tenho encontrado dstat de Dag Wieer uma boa adição ao meu kit de ferramentas para rastrear problemas.

(Já que estamos prestes a testar o JBoss-under-KVM, isso é relevante para meus interesses ...)

    
por 11.07.2010 / 02:03