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确实被释放,这种命令很实用呢。

你可能感兴趣的:(linux基础知识)