某台式機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。