Ubuntu 12.10 e VMware Workstation 9: o armazenamento em cache de RAM causa graves quedas de desempenho

4

Eu li muitos tópicos sobre cache de memória e a resposta padrão de "cache grande é bom, não deve afetar o desempenho", "o kernel sabe melhor".

Atualizei recentemente de 12.04 para 12.10 e mudei do VirtualBox para o VMware Workstation e as diferenças de desempenho são graves (suspeito que seja por causa do último).

Quando estou executando minha máquina virtual, o gráfico do monitor de carga do sistema mostra menos de 50 % de uso de memória em geral. O indicador de carga do sistema está me mostrando que o restante da minha RAM é usado no cache o tempo todo.

Simples e simples, essa é a comparação:

ANTES

  • O cache foi usado com moderação, praticamente nenhum uso da minha memória foi o cache
  • O Swappiness era 0 (fazia com que minha memória fosse usada primeiro, depois trocasse apenas se necessário)
  • O desempenho foi muito bom e lógico
    1. A RAM foi usada totalmente em primeiro lugar, o armazenamento em cache foi mínimo. Eu poderia rodar software suficiente para utilizar meus 4 GB de RAM sem qualquer degradação de desempenho.
    2. O espaço de troca foi então usado conforme necessário, o que era obviamente mais lento (estou em um HDD), mas ainda era utilizável quando o programa atual era carregado na memória

DEPOIS

  • O cache é usado para preencher os 4 GB completos assim que minha máquina virtual é executada
  • O Swappiness é 0 (o mesmo comportamento de antes, mas o cache usa a memória completa imediatamente)
  • O desempenho é terrível e inutilizável durante a execução do software do Ubuntu
    1. As coisas básicas, como mudar as janelas, levam 2 minutos +
    2. A mudança de telas acontece quadro a quadro, às vezes até cinco minutos
    3. Não é possível executar um IDE e VM como eu poderia com facilidade antes

Então, basicamente, alguma sugestão sobre como levar meu desempenho de volta para como era antes enquanto mantinha minha configuração atual?

Minha suspeita é VMWare é o problema, mas como eu vejo o que está ligado ao uso do cache? Certamente há uma maneira de controlar esse comportamento em software tão polido quanto o VMware?

Obrigado

EDITAR: Também pode ser importante observar que o comportamento é diferente dependendo de o VMware estar aberto ou fechado. Se o VMware estiver aberto, o RAM será bloqueado em um cache de 50% e 50% e entrará no bloqueio completo mencionado acima. Em contraste, se o VMware for fechado (depois de aberto), a RAM continuará a aumentar conforme necessário / o cache permanecerá como a memória restante completa e não haverá degradação perceptível do desempenho.

EDIT2: Eu troquei meu swappiness para 5 como sugerido, sem alteração alguma (também tive os mesmos problemas com swappiness de 10 e 60 antes de postar esta questão). Em um exame mais detalhado, há algo realmente confuso. O monitor do sistema (e confirmado com os comandos do terminal sugeridos - free -m ) está mostrando o seguinte:

ben@ben-HPdv6:~$ free -m
         total       used       free     shared    buffers     cached
Mem:          3945       3827        117          0         42       2770
-/+ buffers/cache:       1014       2931
Swap:         1905          0       1905

O que diz que apenas ~ 1GB da minha RAM está sendo usada e ~ 3GB está no cache de disco MAS minha VM está em execução e está alocada 1.5GB de RAM. Não houve aumento na minha RAM usada quando eu carreguei a VM, mas o cache saltou. O monitor do sistema (foi confirmado com ps -aux ) mostra que o vmware tem um som correto de 1.8GB de RAM, mas obviamente free -m está mostrando o contrário. Os resultados também sugerem o contrário, já que meu sistema se esforçou para até mesmo abrir essa página do chrome para postar a resposta (eu só tenho estação de trabalho vmware e terminal aberto). É como se a memória não estivesse sendo declarada corretamente como uso da memória RAM (em oposição ao cache) e então o kernel obviamente não está respondendo corretamente baseado nisso? Como se estivesse tentando liberar a memória cache conforme a necessidade, como é suposto, mas não é possível, porque na verdade ela usava memória / não cache.

Estou apenas brincando aqui agora, realmente procurando alguma ajuda sobre como chegar ao fundo disso. Alguma ideia de descobrir o que está acontecendo? Existe uma maneira de confirmar que este é um problema da VMware e não um do Ubuntu?

    
por B T 25.11.2012 / 00:49

2 respostas

0

A solução acabou sendo resolvida com atualizações futuras do kernel. Para o registro, o kernel ofensivo que causou este problema foi 3.5.0-17-generic

    
por B T 25.01.2013 / 00:35
2

O conjunto de swappiness para 0 NÃO é recomendado no ambiente de produção, especialmente para um host que executa várias máquinas virtuais. Eu vi problemas estranhos em servidores e minhas próprias estações de trabalho, com swappiness definido como 0, alterando-o para 5 ou maior valor torna normal novamente, apenas não defina a zero, a menos que você esteja 100% de certeza que você estão fazendo e a consequência, solução alternativa.

Eu não confio no Monitor do Sistema GNOME. Normalmente use free , vmstat ou dstat .

  1. free Memória do sistema disponível = livre + buffers + armazenados em cache ou + buffers / cache em free output.
  2. vmstat é usado principalmente para monitorar a entrada / saída da página (swap). Você precisa solucionar problemas se houver muita saída / entrada de página.
  3. dstat é mais avançado que vmstat

Já tentou verificar os problemas conhecidos da VMware Workstation? Certifique-se de executar a versão mais recente: 9.0.1?

Gerenciamento de memória do Linux:

link

link

    
por Terry Wang 25.11.2012 / 04:29