Linux定时任务清理内存缓存

1.问题

linux系统在使用时,部分程序不会释放内存,造成内存一直挂在哪里,当需要使用新程序时,由于内存不足造成故障。

2.解决方法

总体流程就是将内存中的缓存同步到硬盘,并释放。将此命令定时执行就可以自动化的清理内存。

2.1查看内存使用情况

free -h

total:系统内存总大小
used:已使用内存
free:可用内存(剩余多少内存)
shared:多个进程共享的内存
buff/cache:系统缓存大小
available:还可以被使用的内存

2.2 手动清理命令

sync; sudo echo 3 | sudo tee /proc/sys/vm/drop_caches

2.3 定时自动清理

# 创建命令文件夹
mkdir -p /home/bin/sh/ && cd /home/bin/sh
# 编辑命令文件
vim cleancache.sh
#!/bin/bash
#每3小时清除一次缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches

复制上述配置文件内容,shift+ins 粘贴文本后,输入 :wq 退出

更改文件文件授权

chmod +x  cleancache.sh
# cleancache命令加入定时任务,每3小时清理一次 
echo "0 */3 * * * sh /home/bin/sh/cleancache.sh >/dev/null 2>&1 &" >> /var/spool/cron/root
# 编辑定时任务
crontab -e

0 */3 * * * sh /home/bin/sh/cleancache.sh >/dev/null 2>&1 &

# 查看定时任务
crontab -l

2.4 设置定时任务启动以及开机自启

#centos和ubantu
systemctl start crond.service   # 开启

systemctl restart crond.service # 重启
 
systemctl enable crond.service  # 设置开机启动
 
systemctl status crond.service  # 查看运行状态

# Debian系统
systemctl start cron.service   # 开启

systemctl restart cron.service # 重启
 
systemctl enable cron.service  # 设置开机启动
 
systemctl status cron.service  # 查看运行状态

你可能感兴趣的:(linux,缓存,运维)