O VirtualBox está usando muita memória RAM para o seu sistema, e você está trocando constantemente. Eu retocou a imagem para torná-la visível:
O VirtualBox tem um requisito de memória virtual quase do mesmo tamanho da sua RAM física.
Quanta memória você tem dedicado à máquina virtual? Na minha experiência, tudo o que excede 1/3 da sua RAM física total está pedindo problemas e lentidão.
O processo de java sob ele também pode ser parte do problema (é em 2.8G!) --- as chances são de que o VirtualBox e esse processo estão competindo por RAM e livelock juntos trocando como um louco.
Mais detalhado: que o Virtual Size é a memória que o processo "mapeou", ou seja, a memória que acha que possui - apenas parte disso está realmente na RAM a qualquer momento , e essa parte é a marcada com RES (para residente). Se o programa tentar acessar a memória que está em seu pool virtual, mas não na RAM, e a memória estiver cheia, alguma outra memória deve ser trocada para criar um novo. Então, se você tem dois processos com uma grande diferença entre memória virtual e residente, as chances são de que os dois estão trocando o outro em cada alternância de agendamento - tornando o sistema lento para um rastreamento - memória de troca pode ser milhões de tempo mais lento que a RAM.
O fato de que isso acontece após um longo período de inatividade provavelmente se deve ao fato de que o sistema estabeleceu uma partição da RAM entre o processo que mais ou menos satisfaz todos eles para essa carga de trabalho . Quando você altera o tipo de carga de trabalho novamente, partes diferentes dos programas são carregadas e o frenesi de troca é iniciado. As chances são de que, se você esperar o tempo necessário (pode levar horas!), O sistema encontrará mais ou menos outro equilíbrio decente; é o transitório que é ruim.
Sobre o seu caso:
Com 4G de RAM, ter uma máquina virtual de 1.5G é ok, se é o único processo que requer memória no sistema . Provavelmente aquele e o IDE são demais.
Truque sujo (e perigoso)
Para ter de volta um sistema responsivo, a maneira mais rápida que eu sei é forçar a troca; mas isso é bastante perigoso em algum momento. A ideia básica é fazer um
sudo swapoff -a
espere pelo acabamento ...
sudo swapon -a
Isso tentará colocar toda a memória de volta na RAM. Se não puder, os processos serão mortos impiedosamente ao longo do caminho. Para evitar a morte de alguns processos inocentes e importantes do sistema (1), a melhor maneira é tentar fechar o memória antes de fazer o swapoff.
(1) o matador de OOM (out-of-memory) do kernel irá tentar matar os processos corretos, mas não é à prova de falhas.