Linux 清理buff/cache缓存

本文介绍如何使用Top命令和free-m检查Linux系统的内存使用情况。当系统出现高缓存占用时,文章提供了sync和echo命令组合来释放缓存,包括pagecache、entries和inodes缓存,从而增加可用物理内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Top命令查看内存使用情况

或者用free -m

当磁盘频繁产生IO时会导致buff/cache占用很高的内存,导致可用物理内存很少

但是当真正需要内存时,缓冲区内存会自动释放.

如果需要清理可以用

 sync;echo 3 > /proc/sys/vm/drop_caches

前面加sync 是为了防止内容丢失

free pagecache:echo 1 >/proc/sys/vm/drop_caches

To free dentries and inodes:echo 2 >/proc/sys/vm/drop_caches

二者都清理就是  sync;echo 3 > /proc/sys/vm/drop_caches

### 如何在 Linux 中使用 `free -h` 并清理 Buff/Cache 以释放内存 当测试服务器的物理内存有限时,可能会遇到可用内存较少而缓冲区和缓存 (buff/cache) 占用较多的情况。为了优化性能并释放不必要的内存占用,可以通过特定命令来清理这些缓存。 #### 查看当前内存状态 首先,通过执行以下命令查看当前系统的内存使用情况: ```bash free -h ``` 此命令将以人类可读的方式显示总内存、已用内存以及空闲内存的数量,并单独列出缓冲区和缓存所使用的部分[^1]。 #### 清理 Buffer 和 Cache 缓存清理 buffer 和 cache 的内存,需先同步所有挂起的操作至磁盘,再向 `/proc/sys/vm/drop_caches` 文件发送指令以触发缓存清除操作。具体步骤如下: - 同步文件系统: ```bash sync ``` - 发送信号给 drop_caches 来清空不同类型的数据结构: - **仅清除 page cache** ```bash echo 1 > /proc/sys/vm/drop_caches ``` - **清除 slab 分配器中的对象(包括 dentry 和 inode 缓存)** ```bash echo 2 > /proc/sys/vm/drop_caches ``` - **同时清除以上两种类型的缓存** ```bash echo 3 > /proc/sys/vm/drop_caches ``` 上述命令可以直接输入到终端中运行;如果权限不足,则可能需要加上 `sudo` 提升权限[^3]。 另外一种方法是利用 `sysctl` 命令设置参数值而不必直接编辑 proc 文件: ```bash sudo sysctl -w vm.drop_caches=2 ``` 这同样能够达到相同的效果——即释放所有的缓存(页缓存、目录项和inode缓存),从而腾出更多可用RAM供其他进程使用[^5]。 需要注意的是,在大多数情况下,Linux 内核会自动管理好这些缓存空间,只有在特殊需求下才建议手动干预。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值