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
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
DEPOIS
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?
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
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
.
free
Memória do sistema disponível = livre + buffers + armazenados em cache ou + buffers / cache em free
output. 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. 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: