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
```bash
# 编辑命令文件
vim cleancache.sh
```bash
#!/bin/bash
#每3小时清除一次缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches
复制上述配置文件内容,shift+ins
粘贴文本后,输入 :wq
退出
更改文件文件授权
chmod +x cleancache.sh
```bash
# cleancache命令加入定时任务,每3小时清理一次
echo "0 */3 * * * sh /home/bin/sh/cleancache.sh >/dev/null 2>&1 &" >> /var/spool/cron/root
```bash
# 编辑定时任务
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 # 查看运行状态
```bash
# Debian系统
systemctl start cron.service # 开启
systemctl restart cron.service # 重启
systemctl enable cron.service # 设置开机启动
systemctl status cron.service # 查看运行状态
评论区