varkai

此心不动,随机而动。

Linux 系统释放 Cached 内存

2018.08.25 运维

查看内存使用情况

在终端执行 free -h,可以查询系统内存的具体使用情况,可以看到我这里 cached 占用了17G的内存。

$ free -h
             total       used       free     shared    buffers     cached
Mem:           62G        18G        43G        14G       284M        17G
-/+ buffers/cache:       1.1G        61G
Swap:          31G         0B        31G

释放 cached

为了安全起见,首先使用 sync 命令将系统 buffer 中的数据强制写入硬盘中,然后再执行内存释放命令,其中有3种释放方式,可以根据下方备注选择相应的方式。

# 释放 pagecache
$ sync
$ echo 1 > /proc/sys/vm/drop_caches

# 释放 dentries and inodes
$ sync
$ echo 2 > /proc/sys/vm/drop_caches

# 释放 pagecache, dentries and inodes
$ sync
$ echo 3 > /proc/sys/vm/drop_caches

还原系统默认配置

释放内存后,再将内存释放方式还原成默认。

$ echo 0 > /proc/sys/vm/drop_caches