感谢支持
我们一直在努力

Linux内存释放机制

今天在Linux下启动了几个Tomcat服务,突然发现24G的内存居然差点给用完了,看图,注意红色的地方


Linux内存释放机制

先解释一下其中的含义:


total 内存总数


used 已经使用的内存数


free 空闲的内存数


shared 多个进程共享的内存总额


buffers Buffer Cache和cached Page Cache 磁盘缓存的大小


-buffers/cache 的内存数:used – buffers – cached


+buffers/cache 的内存数:free + buffers + cached


可用的memory=free memory+buffers+cached


从网上得知:为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。


网上有人说等一段时间就会释放,www.linuxidc.com 答案是NO,但是我们可以手动释放buffer空间。


/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存.操作如下:


cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_caches的值,默认为0


sync


手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)


 echo 3 > /proc/sys/vm/drop_caches
cat /proc/sys/vm/drop_caches
3


将/proc/sys/vm/drop_caches值设为3


请查看图片,已经将内存释放。


Linux内存释放机制

赞(0) 打赏
转载请注明出处:服务器评测 » Linux内存释放机制
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏