某台式机Ubuntu内存共3G,但free的内存只有200M,无法满足scala的jvm需求。
注意用top命令查看才能看到真正的free内存。下面是查看真正内存使用量的另一种命令。
watch -n 1 cat /proc/meminfo
搜索发现有三种方法都可以达到释放内存的目的。
watch -n 1 free -m
or:
free -m
上述这种方法只增加了几十M。
sudo sysctl -w vm.drop_caches=3
上述这种方法,目的是释放kernel用在cache上面的内存。增加了约1G.
下面这种方法释放的更多,但可能会影响系统的稳定!一定要小心使用。
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
这个命令会释放无论是使用中的内存还是cache(page cache, inodes, and dentries),小心使用。
总的来说,还是第二种方法更合适,如果需要隔一段时间自动运行一次,可以使用cron jobs。
相关阅读:
CentOS 5 释放内存的方法