|
Q:手动释放Linux内存
A:清除系统对内存的cache,使用root做下面几步:
注意运行所有命令前要指向sync来同步数据,否则会有部分数据丢失的情况发生!
- sync
- echo 3 > /proc/sys/vm/drop_caches
- sync
- echo 0 > /proc/sys/vm/drop_caches
复制代码
注解:/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改 /proc中的文件,来对当前kernel的行为做出调整。那么我们就可以通过调整/proc/sys/vm/drop_caches来释放内存。
手动执行sync命令是为了确保文件系统的完整性(描述:sync命令运行sync 子例程。如果必须停止系统,则运行sync命令以确保文件系统的完整性。sync命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件),所以这一步必须先做。
有关/proc/sys/vm/drop_caches的用法如下:
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
- ##To free pagecache:
- echo 1 > /proc/sys/vm/drop_caches
- ##To free dentries and inodes:
- echo 2 > /proc/sys/vm/drop_caches
- ##To free pagecache, dentries and inodes:
- echo 3 > /proc/sys/vm/drop_caches
复制代码
|
|