linux清理缓存和缓冲

本文介绍了一种在Linux系统中快速清理缓存的方法,通过使用特定命令,可以在root权限下有效释放内存资源,提高系统运行效率。

echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
sync

跑完程序后,系统会保存很多缓存以及缓冲,使用 free -m 命令可以看到系统的被占用情况

!!!!使用sodu su进入root权限后!!!!!!
输入以上四个命令后,再次查看,发现内存被清理掉很多

### 手动清理 Linux 缓存缓冲区的方法 在 Linux 系统中,虽然操作系统能够自动管理缓存缓冲区,但在特定场景下(如性能调试或内存压力测试),手动清理这些资源可能是必要的。以下是具体方法: #### 1. 使用 `sync` 命令同步数据到磁盘 为了防止数据丢失,在清除缓存前应先运行 `sync` 命令,这会将所有未写入的数据从缓存刷新到磁盘[^3]。 ```bash sync ``` #### 2. 清除页面缓存 通过调整内核参数 `vm.drop_caches` 的值来实现清空操作。要仅清除页面缓存,可执行以下命令: ```bash echo 1 > /proc/sys/vm/drop_caches ``` 或者使用 `sysctl` 工具完成相同功能: ```bash sysctl -w vm.drop_caches=1 ``` 此命令只会清除页面缓存而不影响其他类型的缓存[^1]。 #### 3. 清除目录项 inode 缓存 如果目标是清除目录项 inode 缓存,则需设置 `vm.drop_caches` 参数为 2: ```bash echo 2 > /proc/sys/vm/drop_caches ``` 同样可以通过 `sysctl` 实现这一目的: ```bash sysctl -w vm.drop_caches=2 ``` 上述指令专门针对缓冲区内存进行清理[^2]。 #### 4. 同时清除页面缓存、目录项以及 inode 缓存 对于希望一次性清除所有类型缓存的情况,可以将 `vm.drop_caches` 设置成 3 来达成目标: ```bash echo 3 > /proc/sys/vm/drop_caches ``` 利用 `sysctl` 完成同样的效果如下所示: ```bash sysctl -w vm.drop_caches=3 ``` 这条语句综合了前面两种情况的效果。 需要注意的是,尽管这种方法有效,但它并不适合日常运维环境下的常规维护工作;它主要用于诊断工具包的一部分或者是特殊需求场合之下应用。 --- ### 注意事项 - **权限要求**:以上提到的所有命令都需要超级用户权限才能成功执行。 - **性能影响**:频繁地手工干预系统默认行为可能会带来意想不到的结果,比如降低整体效率等负面效应,请谨慎对待此类操作。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值