linux释放内存空间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux释放内存空间相关的知识,希望对你有一定的参考价值。
释放内存前先使用sync命令做同步,以确保文件系统的完整性,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。
drop_caches的值可以是0-3之间的数字,代表不同的含义:
- 0:不释放(系统默认值)
- 1:释放页缓存
- 2:释放dentries和inodes
- 3:释放所有缓存
# 释放内存前先使用sync命令做同步,以确保文件系统的完整性
sync
# 释放所有缓存
echo 3 > /proc/sys/vm/drop_caches
释放完内存后改回去让系统重新自动分配内存
# 恢复默认值
echo 0 >/proc/sys/vm/drop_caches
linux何时自动释放内存
参考技术A 是后者“当有某程序需要占用大内存时linux会自动释放cache”linux的理念是内存空着不用白不用,因此会使用空闲内存来做buffer和cache。
我的一台虚拟机运行了JBOSS,在运行一段时间后,查看内存使用情况:
[root@JBOSS
~]#
free
-m
total
used
free
shared
buffers
cached
Mem:
3949
2928
1021
0
308
1278
-/+
buffers/cache:
1341
2608
Swap:
4094
0
4094
可以看出,内存已用2928M,但实际除去
buffers/cache后实际只使用了1341M。你若不管它,内存是不会释放的,而且也没必要释放。
以上是关于linux释放内存空间的主要内容,如果未能解决你的问题,请参考以下文章