Tenho um laptop Dell Precision M4500 com 4 GB de memória RAM e o Ubuntu 12.04 de 64 bits instalado com 8 GB de memória swap. Depois de lançar o ambiente de desenvolvimento Java usual (Eclipse, MySQL Server, SQuirreL, várias abas no Chrome, Skype e Tomcat com webapp GWT relativamente pequeno implementado no devmode), restam cerca de 100 MB de memória livre (segue free -m
de saída):
total used free shared buffers cached
Mem: 3944 3812 131 0 35 579
-/+ buffers/cache: 3197 746
Swap: 8787 422 8365
A execução de top
ordenada pela memória RES mostra o seguinte:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16509 yura 20 0 2540m 593m 13m S 0 15.1 1:45.25 java
10727 yura 20 0 5290m 441m 20m S 0 11.2 11:16.87 java
15886 yura 20 0 4324m 365m 10m S 0 9.3 2:37.32 java
19666 yura 20 0 3030m 292m 29m S 0 7.4 0:12.25 java
4363 root 20 0 307m 180m 44m S 5 4.6 72:57.08 Xorg
4905 yura 20 0 557m 162m 28m S 3 4.1 39:02.73 skype
2403 mysql 20 0 1531m 151m 3296 S 0 3.8 2:06.37 mysqld
5717 yura 20 0 974m 133m 26m S 1 3.4 18:14.44 chrome
11957 yura 20 0 978m 106m 14m S 0 2.7 1:04.37 chrome
5771 yura 20 0 994m 96m 20m S 0 2.5 5:20.52 chrome
18599 yura 30 10 650m 91m 51m S 0 2.3 0:04.78 update-manager
5980 yura 20 0 1285m 68m 9.9m S 3 1.7 21:16.95 chrome
19600 yura 20 0 919m 58m 21m S 0 1.5 0:02.08 chrome
19608 yura 20 0 914m 54m 21m S 0 1.4 0:12.11 chrome
16546 yura 20 0 916m 53m 20m S 0 1.4 0:34.79 chrome
16654 yura 20 0 930m 50m 21m S 0 1.3 0:01.61 chrome
4597 yura 20 0 1083m 48m 20m S 2 1.2 6:53.28 unity-2d-shell
5922 yura 20 0 443m 45m 25m S 0 1.2 1:00.64 chrome
8501 yura 20 0 631m 42m 16m S 0 1.1 0:08.44 unity-2d-spread
5820 yura 20 0 909m 34m 12m S 0 0.9 0:02.54 chrome
5762 yura 20 0 903m 33m 10m S 0 0.9 0:07.36 chrome
5889 yura 20 0 336m 28m 5124 S 0 0.7 1:56.02 chrome
4688 yura 20 0 327m 27m 5124 S 0 0.7 8:21.67 gnome-screensav
4617 yura 20 0 954m 24m 6728 S 0 0.6 0:12.13 nautilus
4743 yura 20 0 523m 22m 7408 S 1 0.6 6:41.10 unity-panel-ser
4895 yura 20 0 478m 18m 5300 S 0 0.5 0:03.86 webilder_unity_
5927 yura 20 0 323m 15m 380 S 0 0.4 0:00.00 chrome
4596 yura 20 0 634m 15m 9076 S 0 0.4 18:49.60 unity-2d-panel
4624 yura 20 0 544m 12m 7208 S 1 0.3 0:06.38 python
5727 yura 20 0 315m 12m 2788 S 0 0.3 0:00.26 chrome
4575 yura 20 0 905m 12m 6768 S 0 0.3 0:19.45 gnome-settings-
4613 yura 20 0 493m 10m 6156 S 0 0.3 0:15.71 nm-applet
5732 yura 20 0 331m 10m 592 S 0 0.3 0:00.26 chrome
4819 yura 20 0 358m 10m 2328 S 0 0.3 0:00.52 unity-lens-vide
4876 yura 20 0 540m 9636 4420 S 0 0.2 0:02.83 unity-scope-vid
Agora, ter 100 MB de memória livre é muito bom para mim, pois tudo funciona bem.
O problema surge quando executo o comando mvn clean install
, que simplesmente começa a construir o aplicativo GWT:
se eu deixar cerca de 800 MB de memória livre fechando algumas abas do Chrome, SQuirreL e GWT webapp sendo executados no devmode, mvn clean install
funcionará muito bem, consumindo quase todos os 800 MB gratuitos e liberando-os.
Mas, se eu não fechar os aplicativos mencionados (abas do Chrome, SQuirrel, deixando o aplicativo GWT rodando no devmode) tendo assim cerca de 100 MB de memória livre, todo o sistema Ubuntu apenas congela durante o processo de construção. Eu tentei esperar por vários minutos, mas nada muda.
Alguém poderia, por favor, avisar o que pode fazer com que todo o sistema Ubuntu congele? Isso pode ser facilmente reproduzido para que eu possa executar qualquer comando ou verificação, portanto, qualquer sugestão será apreciada.
Além disso, o fato interessante é que toda vez que o Ubuntu congela durante a mesma etapa de compilação de mvn clean install
. Mas eu não tenho idéia de por que o Ubuntu congela durante o processo, já que essa etapa de compilação deve simplesmente consumir mais memória e usar mais CPU.
Obrigado antecipadamente!
=================================== EDIT =========== ========================
Ok, hoje eu descobri que ele realmente se congela depois de algum tempo. Deixei 800 MB livres, iniciei o processo de construção, congelei e, após cerca de 7 minutos, o processo foi totalmente congelado e concluído. Ainda assim, esperar por 7 minutos é totalmente inaceitável e não entendo muito bem porque um processo (processo de compilação) está bloqueando outros processos (abas do Chrome, movimento do mouse, etc.) quando há memória insuficiente apenas para ele. Existem outras opções além de atualizar para mais RAM?
=================================== EDIT # 2 ========= ==========================
De acordo com a sugestão de @ terdon, eu medi a temperatura da CPU durante a operação normal e durante o processo de construção antes do congelamento. Os resultados seguem:
Funcionamento normal:
Adapter: ISA adapter
Core 0: +57.0°C (high = +84.0°C, crit = +100.0°C)
Core 1: +57.0°C (high = +84.0°C, crit = +100.0°C)
Core 2: +59.0°C (high = +84.0°C, crit = +100.0°C)
Core 3: +57.0°C (high = +84.0°C, crit = +100.0°C)
Pouco antes de congelar:
Adapter: ISA adapter
Core 0: +74.0°C (high = +84.0°C, crit = +100.0°C)
Core 1: +75.0°C (high = +84.0°C, crit = +100.0°C)
Core 2: +76.0°C (high = +84.0°C, crit = +100.0°C)
Core 3: +77.0°C (high = +84.0°C, crit = +100.0°C)
Então, parece-me que não é devido ao superaquecimento, uma vez que só vai um pouco para cima, mas não cruza high
barreira. Então, novamente, parece-me que é mais um problema de memória ...