【linux命令】Linux服务器如何释放物理内存

内容摘要
Linux下频繁存取文件时,物理内存可能会被耗尽,当程序结束后,内存不会释放,而是一直作为cache。之前我们前边的文章《linux内存命令free
》以及文章《linux的free命令详解-内存是
文章正文

Linux下频繁存取文件时,物理内存可能会被耗尽,当程序结束后,内存不会释放,而是一直作为cache。之前我们前边的文章《linux内存命令free

》以及文章《linux的free命令详解-内存是拿来用的不是拿来看的》就针对linux服务器内存管理机制做了一个详细的介绍说明。linux缓存有dentry,buffer cache,page cache。Dentry用来加速文件路径名到inode的转换;buffer cache加速磁盘块的读写;page cache加速inode的读写。缩短IO调用时间。

下面简单说下一些物理内存释放方法:
1.释放page cahce

 echo 1 > /proc/sys/vm/drop_caches

2.释放dentry和inode

echo 2 > /proc/sys/vm/drop_caches

3.释放page cache,dentry,inode

 echo 3 > /proc/sys/vm/drop_caches

执行结果如下:

[[email protected] vm]# free  -m
             total       used       free     shared    buffers     cached
Mem:           498        491          6          0         62        195
-/+ buffers/cache:        232        265
Swap:            0          0          0
[[email protected] vm]# echo 3  > /proc/sys/vm/drop_caches
[[email protected] vm]# free  -m
             total       used       free     shared    buffers     cached
Mem:           498        255        242          0          1         30
-/+ buffers/cache:        223        274

在释放内存前,最好先允许sync,强制将系统正在处理的page cahce,dentry,inode写入磁盘。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!