linux系统中cache清理/释放命令

本文参考博客:《(Linux)释放系统缓存操作

目录

前言

1.清缓存前同步

2.Linux释放内存

3.查看内存


前言

在Linux系统中有先进的缓存机制,会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作,有效缩短 I/O系统调用(比如read,write)的时间。但当进行了大量文件操作之后,缓存会把内存资源基本用光,导致系统缓慢,使用swap空间,影响了性能,这时就需要清理缓存了。

手动释放缓存操作:

通过设置/proc/sys/vm/drop_caches来释放内存

操作环境:

Ubuntu 16.04


1.清除cache前同步

释放cache前先使用sync命令做同步,将所有未写的系统缓冲区写到磁盘中,以确保文件系统的完整性,否则在释放缓存的过程

中,可能会丢失未保存的文件。 

sync

2.Linux释放cache

/proc/sys/vm/drop_caches的值为是0-3之间的数字,代表不同的含义: 

0:不释放(系统默认值) 

1:释放页缓存 

2:释放dentries和inodes 

3:释放所有缓存

可进行如下操作对cache进行清除:

<1>释放页缓存 

echo 1 > /proc/sys/vm/drop_caches

<2>释放完内存后改回去让系统重新自动分配内存 

echo 0 >/proc/sys/vm/drop_caches

<3>如果要释放所有缓存 

echo 3 > /proc/sys/vm/drop_caches

3.linux查看cache使用情况

看内存的命令

free -m

参数介绍:

total 内存总数 

used 已使用内存数 

free 空闲内存数 

shared 多个进程共享的内存数 

buffers 缓存(用于目录,inode值) 

cached 缓存(用于已打开的文件)

查看清除前后,l系统cache的使用情况:

//清除前
# free -m
              total        used        free      shared  buff/cache   available
Mem:           2474         964         292          10        1216        1263
Swap:          1021           5        1016

# sync
# echo 3 > /proc/sys/vm/drop_caches
//清除后
# free -m
              total        used        free      shared  buff/cache   available
Mem:           2474         913        1232          13         327        1348
Swap:          1021           5        1016

结果:cache确实被释放,这种命令很实用呢。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值