诗和远方

linux释放内存缓冲

Linux系统的缓存机制会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。

在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,此时就需要执行释放内存(清理缓存)的操作。

比如,在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分缓存已经用不到了。此时就需要手动进行Linux下释放内存的操作,其实也就是释放缓存的操作。

free -m #查看内存使用情况。-m选项表示使用MB为单位
sync #同步数据(已修改的 i-node、已延迟的块 I/O 和读写映射文件等)。强制buffer内容立刻写入磁盘,否则在释放缓存的过程中,可能会丢失未保存的文件
echo 3 > /proc/sys/vm/drop_caches  #释放掉被系统cache占用的缓存数据。此指令输入后会立即生效,可以使用只用指令free -m查询现在的可用内存明显的变多了。

sudo.jpg

要查询当前缓存释放的参数,可以输入下面的指令:

#cat /proc/sys/vm/drop_caches


配置文件/proc/sys/vm/drop_caches中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:

0 – 不释放

1 – 释放页缓存

2 – 释放dentries和inodes

3 – 释放所有缓存

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2010
  • 页面总数:1
  • 分类总数:17
  • 标签总数:517
  • 评论总数:0
  • 浏览总数:533686
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML