Workstation Vmware usa toda a minha memória RAM

5

Quando executo uma máquina virtual na estação de trabalho do VMware, depois de alguns minutos de uso, ela usa toda a minha RAM (16 GB). O desempenho do meu sistema desacelera para um rastreamento. O problema acontece com o guest Linux também, mas é pior com o Windows guest. Em Preferências do VMware Workstation, tenho a Memória Reservada definida como 2 GB e especificada para ajustar toda a memória da máquina virtual à RAM do host reservada, mas isso não ajudou, apesar da recomendação dos documentos.

Alguém sabe como impedir que o VMware Workstation use toda a minha RAM quando executo uma Máquina Virtual convidada?

Eu não tenho o problema com o VirtualBox e tentei reinstalar o VMware Workstation e o problema persistiu. Eu pararia de usá-lo, mas há alguns projetos que exigem que eu use o VMware.

Veja mais detalhes:

Quando executo free -m no terminal quando o VMware Workstation está aberto, mas nenhum convidado está em execução (antes de ativar a VM):

             total       used       free     shared    buffers     cached
Mem:         15945       3370      12575        198         23        696
-/+ buffers/cache:       2650      13295
Swap:        19072         74      18998

Depois de iniciar um Windows 10 Guest e rodar por alguns minutos, se eu executar free -m no meu host, obtenho:

             total       used       free     shared    buffers     cached
Mem:         15945      15694        251       2182         66      12158
-/+ buffers/cache:       3468      12477
Swap:        19072         74      18998

Quando encerro o convidado do Windows 10 e executo free -m novamente:

             total       used       free     shared    buffers     cached
Mem:         15945      13499       2446        197         67      10209
-/+ buffers/cache:       3223      12722
Swap:        19072         74      18998

Para recuperar minha memória RAM, preciso executar: sync && echo 3 | sudo tee /proc/sys/vm/drop_caches e depois eu corro free -m eu recebo:

             total       used       free     shared    buffers     cached
Mem:         15945       3312      12633        198          2        642
-/+ buffers/cache:       2667      13278
Swap:        19072         74      18998

Especificações do host do sistema e do convidado

//////////////////////////////////////
System Host:
Ubuntu 14.04LTS
VMware Workstation 12 Pro Version: 12.1.1 build-3770994
///////////////////////////////////////

//////////////////////////////////////
VM Guest:
Windows10
RAM: 1984MB
Processors: 1
DisplayRAM: 1GB
///////////////////////////////////////

//////////////////////////////////////
Motherboard:
ASUS AMD M5 A97 R2.0
///////////////////////////////////////

///////////////////////////////////////
CPU:
AM3+ AMD FX 8320 8-Core 
3.5GHz 16MB Total Cache, (5GHz Max)
///////////////////////////////////////

///////////////////////////////////////
Graphics Card:
ZOTAC Nvidia Geforce GT 730
4GB DDR3 64-bit HDCP
DUAL-Link DVI, HDMI, VGA
///////////////////////////////////////

///////////////////////////////////////
RAM: 16GB
Kingston Hyperx 
2x8GB Memory Sticks 
1866 DDR3 240-pin
///////////////////////////////////////

////////////////////////////////////////
POWER SUPPLY:
EVGA 1000w PS
1000GQ
80+ Gold series
///////////////////////////////////////

Atualização, 19 de setembro de 16

(Observe que esta é uma informação adicional de @granjow, que esperamos que represente a experiência do OP.)

Para adicionar alguns esclarecimentos, o problema não é que o número na coluna “free memory” seja pequeno e estamos apenas insatisfeitos com este número, porque números grandes são mais agradáveis. O problema é que o desempenho do sistema é realmente terrível.

O problema se manifesta da seguinte maneira: Depois de iniciar a VM e alguns programas, a quantidade de memória livre cai, o que é esperado. A quantidade de memória usada pelo VMware aumenta muito acima do limite configurado (ou seja, 10 GB em vez de 4 GB, com apenas 8 GB de RAM física no total). Em algum momento, os hosts guest e começam a congelar para > 10 s em várias ocasiões: por exemplo, navegando em arquivos no WebStorm (guest), abrindo uma nova aba do navegador ou aba do terminal ou apenas pressionando Alt-Tab (host).

Ao observar a carga da CPU nessas ocasiões, o uso da CPU do convidado vai para 100% enquanto o sistema congela, mas nenhum programa é exibido como ocupado no gerenciador de tarefas. Basicamente, eu posso observar os sintomas típicos de um sistema ficando sem RAM e usando o disco como cache. Ao observar o log do VMware, muitas vezes há uma linha sobre o lançamento de balões, que é dito ser o mecanismo muito inteligente do VMware que gerencia e libera a memória liberada pelo convidado.

Não estamos falando de especificações ruins da máquina host, porque

  • exatamente a mesma VM foi executada em exatamente o mesmo hardware no Windows 10 sem problemas, sem nunca ter problemas de desempenho
  • a mesma VM, importada no VirtualBox no Ubuntu, funciona igualmente bem com o VMware no Windows 10, com o htop / glances mostrando um uso constante de memória de cerca de 4,6 GB e sem congelamentos.
por jtlindsey 09.07.2016 / 05:04

4 respostas

1

Você está se preocupando com nada. A ram Não usada é desperdiçada ram. Seu sistema como tal irá inteligentemente usar memória RAM sobrando para cache, acelerando as coisas conforme necessário.

top é uma boa ferramenta - fornece informações úteis, mas uma abordagem mais holística pode ser necessária - iotop ou ferramentas similares mostrariam isso. A suspeita My é que o armazenamento é lento, e o virtualbox e o vmware tratam o uso de E / S e de RAM de maneira diferente. Uma 'correção' pode ser usar um ssd e / ou executar a VM com armazenamento diferente do sistema principal para ver se isso ajuda. Eu corro meu sistema fora de um SSD e minhas VMs fora de um disco grande, 7200 rpm, embora eu tenha brincado com a obtenção de um SSD para isso.

    
por 18.09.2016 / 02:44
1

Em nenhum momento seu sistema é executado em qualquer lugar perto da memória. Nenhuma ação é necessária.

O que está acontecendo aqui é que a grande quantidade de atividade de disco causada pela operação normal da máquina virtual está fazendo com que o sistema preencha a memória não utilizada no sistema com dados armazenados em cache. Essencialmente, o Linux coleta dados que são acessados com frequência ou recentemente do disco (que, no seu caso, são principalmente dados lidos pelo disco virtual da VM) e armazena uma cópia na RAM para aumentar o desempenho. Isso é feito porque a RAM é muito mais rápida do que qualquer disco rígido ou flash SSD. Se outros aplicativos na máquina host precisarem de mais memória, o sistema simplesmente liberará alguns dos dados em cache e os alocará para esses aplicativos.

As quantidades reais de memória física em uso e disponíveis para aplicativos, ignorando dados em cache, estão listadas na linha -/+ buffers/cache . Seu sistema tinha cerca de 12 GB de memória utilizável restante enquanto a VM era em execução, mas a maioria foi usada para dados armazenados em cache. Esse comportamento é normal e você não precisa fazer nada sobre isso. Na verdade, a limpeza manual do cache (com sync && echo 3 | sudo tee /proc/sys/vm/drop_caches ) prejudicará o desempenho do sistema, já que o sistema precisará acessar o disco para ler os dados, em vez de apenas recuperar a cópia na RAM.

O desempenho lento do sistema provavelmente é causado pela alta carga de disco enquanto a VM está em execução. Se você estiver usando um disco rígido mecânico, considere atualizar para um SSD.

Mais informações sobre como o Linux usa memória livre para armazenar dados em cache podem ser encontradas em "Linux comeu minha memória RAM!" .

    
por 18.09.2016 / 02:20
1

Após várias re-instalações do sistema operacional e configurações diferentes, o problema que eu publiquei foi reduzido para minha placa-mãe, RAM ou CPU.

Eu usei o mesmo disco rígido (um SSD por sinal) em outro sistema mais lento (6ª geração intel i5, processador 2.3GHz / 2.8GHz), com o mesmo sistema operacional, e com a mesma quantidade de RAM, mas varas diferentes e não experimentou mais o problema. O usuário que postou a recompensa para chamar tanta atenção para essa postagem de dois meses pode querer fazer um teste completo em seu hardware.

    
por 18.09.2016 / 06:18
0

Esse problema também acontece na minha máquina (32 GB de RAM). O VMWare preenche toda a RAM e, após um curto período de tempo, o sistema diminui drasticamente.

O VMware preenche o "cache RAM" - esta é uma RAM não usada que é usada como cache. Teoricamente, isso NÃO deve exigir nenhuma ação, como escreve o bwDraco.

Infelizmente isso não é verdade na prática. Esse problema começou com o VMWare 10, versões anteriores não tinham esse problema.

Pode ser verificado com htop . Veja a barra amarela para "Mem". Se esta barra amarela (uso de cache RAM) estiver à direita, o cache estará cheio e a máquina ficará mais lenta.

Eu não sei o motivo desse problema, mas tenho uma solução que funciona bem:

Usando um cron job, executo este comando a cada três minutos:

sh  -c  "sync; echo 3 > /proc/sys/vm/drop_chaces"

Isso limpa o cache do VMWare e a máquina funciona sem problemas de desempenho.

Uma possível explicação poderia ser que o VMWare consome toda a RAM do cache e não há mais cache para o kernel do Linux. O VMWare nunca libera essa memória, mas o Linux também precisa de algum cache para trabalhar mais rápido.

    
por 21.11.2016 / 17:39