首页 > Linux操作系统 > Linux操作系统 > Linux系统释放cache内存
先看看free命令结果:
# free
total used free shared buffers cached
Mem: 1035108 500168 534940 0 5496 139120
-/+ buffers/cache: 355552 679556
Swap: 2096472 451984 1644488
第二行(mem):
total:总计物理内存的大小.
used:已使用多大.
free:可用有多少.
Shared:多个进程共享的内存总额.
Buffers/cached:磁盘缓存的大小.
第三行(-/ buffers/cached):
used:已使用多大.
free:可用有多少.
第二行(mem)的used/free与第三行(-/ buffers/cache) used/free的区别.
这两个的区别在于使用的角度来看,第二行是从OS的角度来看,对于OS, buffers/cached 都是属于被使用,它的可用内存是8908KB,已用内存是377116KB,其中包括,内核(OS)使用 Application(X, oracle,etc)使用的 buffers cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,buffer/cached是为了提高文件读取的性能,当应用程序需再用到内存的时候,buffer/cached会很快地被回收.
从应用程序的角度来说, 可用内存 = 系统free memory+ buffers+ cached.
如上例: 679556 = 534940 + 5496 + 139120
如何释放内存呢?
通过调整/proc/sys/vm/drop_caches来释放内存. 操作如下:
[root@server test]# cat /proc/sys/vm/drop_caches --/proc/sys/vm/drop_caches的值,默认为0
0
[root@server test]# sync
手动执行sync命令(描述:sync 命令运行 sync 子例程.假如停止系统,则运行 sync 命令以确保文档系统的完整性.sync 命令将任何未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文档)
[root@server test]# echo 3 > /proc/sys/vm/drop_caches
[root@server test]# cat /proc/sys/vm/drop_caches --将/proc/sys/vm/drop_caches值设为3
3
[root@server test]# free -m --查看释放的内存情况
其他参考:
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become free.
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync(8) first.
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23682146/viewspace-1055823/ ,如需转载,请注明出处,否则将追究法律责任。