Meu laptop é ThinkPad x220, 4G ram, disco rígido é 7200rpm, instalado com o Ubuntu 12.04, usando o desktop Unity.
Quando eu abro eclipse e chrome, eles comem cerca de 2G de memória. Aqui está o resultado free -m
:
total used free shared buffers cached
Mem: 3841 3301 540 0 10 956
-/+ buffers/cache: 2334 1507
Swap: 8187 306 7881
E o resultado top
:
Mem: 3934188k total, 3540508k used, 393680k free, 45680k buffers
Swap: 8384508k total, 313512k used, 8070996k free, 1078888k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5552 martin 20 0 4249m 388m 6560 S 0 10.1 2:46.28 java
3369 martin 20 0 2548m 182m 32m R 1 4.7 29:19.64 chrome
3406 martin 20 0 1000m 155m 16m S 0 4.1 4:18.97 chrome
2736 martin 20 0 1582m 106m 29m S 1 2.8 13:10.27 compiz
3704 martin 20 0 945m 85m 8396 S 0 2.2 0:15.60 chrome
11047 martin 20 0 926m 82m 23m S 0 2.2 0:06.52 chrome
11443 martin 20 0 915m 72m 21m S 0 1.9 0:46.08 chrome
4280 martin 20 0 822m 66m 12m S 4 1.7 14:59.41 chrome
Após alguns períodos de aproximadamente 10 minutos, eu tenho apenas 100M + de memória disponível, então o sistema começa a trocar memória para o disco, o que faz com que meu computador congele totalmente, ele se recuperaria após o término da troca.
Eu já tenho vm.swappiness = 10
Eu pesquisei no google, e alguns artigos disseram que quando a memória não é suficiente, o sistema
Libere o cache e use-o como memória. Mas parece-me que o cache nunca é liberado. Quando o sistema não tem memória ( Mas na verdade eu tenho memória suficiente, alguma memória é usada apenas para cache ), ele não usa cache, ao invés disso, troca a memória diretamente para o disco, que causa congelamento.
Como posso evitar isso?
Diminuindo a memória em cache?