• 认真地记录技术中遇到的坑!

Linux cached内存释放

Linux 悠悠 1年前 (2017-07-25) 410次浏览 0个评论

查看系统内存使用情况

使用 free 命令,可以查看内存使用情况; free -s 2; 可以两秒刷新一次查看。
Linux cached内存释放
可以看到 cached 几乎占用了所有的内存。

释放 cached 内存

释放方法有三种, 需要 root 权限。

sync   # 将缓存中的文件写入磁盘,可选
echo 1 > /proc/sys/vm/drop_caches  #To free pagecache 
echo 2 > /proc/sys/vm/drop_caches   #To free dentries and inodes
echo 3 > /proc/sys/vm/drop_caches  #To free pagecache, dentries and inodes

一般使用第一条命令就足够了。执行之后可以发现 cached 几乎被释放,内存又回来了。如果以后你发现内存不够用,可以再执行一次这个命令。
补充:free -g 命令可以以 G 为单位查看内存使用情况。
Linux cached内存释放
还远系统默认配置,可以使用以下命令:

echo 0 > /proc/sys/vm/drop_caches

Linux cached机制

buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会优先从buffers与cached内存区查找,然后才从磁盘读取,通过缓存,能够大大提高了操作系统的性能。
buffers:缓存块设备,只记录文件系统的元数据(metadata)以及 tracking in-flight pages
cached:缓存文件。存放目录,文件属性以及权限等。
Cache 分为 Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。
当有大量的日志产生,或者大量的文件IO时,可能会导致cache 的急剧增大,虽然Linux会自动维护Cache, 但是如果我们很需要内存,就要手动释放Cache了。

一般来说,Cache内存占用过大不会怎么拖慢应用速度的,当应用需要很多内存时,Linux系统会收回Cache的内存,为应用腾出空间的。


转载请注明出处 Linux cached内存释放
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址