我的笔记本电脑是Thinkpad x220,4G ram,硬盘是7200rpm,使用Unity桌面安装Ubuntu 12.04。
当我打开eclipse和chrome时,它们会吃掉大约2G的内存。这里是 free -m
结果:
total used free shared buffers cached
Mem: 3841 3301 540 0 10 956
-/+ buffers/cache: 2334 1507
Swap: 8187 306 7881
而且 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
经过一段时间大约10分钟后,我只有100M +可用内存,然后系统开始将内存交换到磁盘,导致我的计算机完全冻结,它会在交换完成后恢复。
我已经有了 vm.swappiness = 10
我搜索了谷歌,有些文章说,当内存不足时,系统会 释放缓存,并将其用作内存。但在我看来,缓存永远不会被释放。当系统缺乏记忆时( 但实际上我有足够的内存,一些内存只用于缓存 ),它不会使用缓存,而是将内存直接交换到磁盘,导致冻结。
我怎么能避免这个?
减少缓存内存?
我不认为你的诊断是正确的。你的冻结可能与内存使用无关。无论如何,减少交换会导致系统交换 减 , 意思是 减 记忆将是免费的。 (系统交换以使物理内存空闲。)减少缓存只意味着更多的磁盘访问。 (缓存的目的是避免磁盘访问。)
—
David Schwartz
我遇到了同样的情况 - 运行配备4GB内存的Dell Precision M4500笔记本电脑。发射后
—
Yura
Eclipse, MySQL Server, 4 tabs in Chrome, Skype and Tomcat with GWT application
我跑的时候只剩下大约300 MB free -m
。当我开始重建GWT应用程序(当有足够的RAM时,这需要高达1 GB的RAM)系统冻结(没有鼠标移动等)并且无法恢复 - 我只需要重新启动我的笔记本电脑。但是,当我释放足够的RAM时,GWT应用程序重建通过正常。 @David你能告诉我如何调查这个问题?提前致谢
@David还是更好地提出单独的问题?
—
Yura
@Yura:我建议你提出自己的问题。
—
David Schwartz
如果有人有想法,请同时看看这个类似的问题: superuser.com/questions/615453/...
—
Yura