linux中 buff/cache占用内存过多

本文介绍了Linux服务器上缓存内存占用过多的问题,并提供了使用`drop_caches`命令手动释放缓存的方法。同时,作者还分享了一个编写定时任务脚本`CacheClean.sh`,每5分钟自动清理缓存的教程,以保持服务器资源的有效利用。

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

Linux服务器用一段时间就会出现buff/cache占用内存过多的情况,导致free空闲内存变得非常少,严重影响使用;

这个时候就可以用如下命令去清除一下cache内存
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
##/proc/sys/vm/drop_caches的值为是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存
以上命令的执行需要root账号权限
在这里插入图片描述
在这里插入图片描述
执行后内存降下来了
一、定时任务自动运行步骤:
1、首先切换到root账户 su
2、vim ​ ​CacheClean.sh​​ 用vi编辑,输入以下内容
#!/bin/bash
echo “开始清理cache缓存”
sync #指令会将存于 buffer 中的资料强制写入硬盘中。
sleep 30 #延迟10秒
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo “清理cache结束”
3、给脚本添加权限
chmod 777 CacheClean.sh

4、设置定时执行脚本清理缓存
crontab -e (如果没有需要首先安装crontab)
a、设置5分钟执行:
5 * * * * /usr/bin/sh /root/CacheClean.sh
b、#每天20点执行清除一次缓存
0 * * * /usr/bin/sh /root/CacheClean.sh
5、如下指令可以查看是否成功
crontab -l

*********over

Linux 系统中,buff/cache 是操作系统用来缓存磁盘数据的一种机制。当应用程序需要读取磁盘上的数据时,Linux 会先将这些数据缓存到内存中,以提磁盘读取速度。当应用程序需要使用内存时,缓存数据会被清除,将内存返还给应用程序使用。 如果 buff/cache 内存占用,有几种可能的解决办法: 1. 调整 vm.dirty_ratio 和 vm.dirty_background_ratio 参数 vm.dirty_ratio 指定了内存中脏数据所占的最大比例,默认值为 20,意味着当内存中脏数据占用超过 20% 时,系统会开始写入磁盘。vm.dirty_background_ratio 指定了内存中脏数据所占的最小比例,默认值为 10,意味着当内存中脏数据占用低于 10% 时,系统会开始写入磁盘。 可以通过修改这两个参数的值来调整 buff/cache 内存占用。例如,将 vm.dirty_ratio 和 vm.dirty_background_ratio 的值都设置为 5,则系统会更频繁地把脏数据写入磁盘,从而减少内存中的缓存数据。 2. 调整 swappiness 参数 swappiness 是一个控制系统将内存中的数据交换到交换空间的程度的参数。默认值为 60,意味着当内存使用率达到 60% 时,系统会开始把一些数据写入交换空间。可以通过修改 swappiness 的值来调整系统的交换行为,从而影响 buff/cache 内存占用。 例如,将 swappiness 的值设置为较低的 10,则系统会更倾向于保留内存中的缓存数据,从而减少交换行为,降低 buff/cache 内存占用。 3. 增加物理内存 如果系统中物理内存不足,buff/cache 内存占用就会相对较。可以通过增加物理内存来减少 buff/cache 内存占用,从而提系统的性能。 需要注意的是,增加物理内存并不是万能的解决办法,可能存在其他因素导致的 buff/cache 内存占用问题。在调整系统参数和增加物理内存之前,需要仔细分析系统的性能瓶颈和内存使用情况,找出问题的根本原因。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值