buff/cache内存占用过多(定时任务,脚本)

  • 找一个目录,然后创建脚本文件--touch cleanCache.sh
  • 用vi编辑--vi cleanCache.sh
  • 添加如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "==========================="
echo "内存使用情况 | [使用了:${used}MB][剩余:${free}MB]"

if [ $free -le 500 ] ; then
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
echo "清理Cached成功"
else
echo "不需要清理"
fi
exit
  • 通过如下命令测试脚本是否正常运行
    chmod 777 cleanCache.sh
    ./cleanCache.sh
  • 下面开始设置自动定期清理,输入如下命令,打开配置文件--crontab -e
  • 在末尾添加如下内容:(每天0点的时候执行一次,可以按需更改)
    1
    * 0 * * * ./路径/cleanCache.sh
  • 然后输入如下指令可以查看是否成功--crontab -l

阿里云服务器启用虚拟内存

阿里云服务器默认没有开启虚拟内存,经常遇到软件内存不足,运行崩溃的情况。
1、创建虚拟内存磁盘卷

1
2
3
# 大概count=2024288,2G左右,可以视磁盘大小和需求创建。
# 默认存放在/swap/swapadd,可以是自己的任何目录。阿里云服务器默认没有swap,需要自己mkdir /swap创建。
dd if=/dev/zero of=/swap/swapadd bs=1024 count=2024288

2、将磁盘卷转为虚拟内存卷

1
mkswap /swap/swapadd

3、启用虚拟内存服务

1
2
swapon /swap/swapadd
free -h

4、关闭虚拟内存服务

1
swapoff -v /swap/swapadd

5.移动虚拟内存空间

1
2
3
4
如果当前的虚存所在的磁盘空间不够,可以首先关闭虚存服务,将其移动到别的磁盘,再启用即可。
swapoff -v /swap/swapadd
mv /swap/swapadd /mnt/swap
swapon /swap/swapadd

磁盘清理

查看所有的jobs的磁盘占用情况。(max-depth: 目录查找深度)

  • du -ah --max-depth=1

查看磁盘空间使用情况

  • df -h

查看是哪个文件占得空间比较大

  • du --max-depth=1 -h /

日志的话可以运行下命令清空(而非删除,避免一些系统级别的不产生日志等错误)

  • cat /dev/null > file.log

查找大于100m的文件

  • ls -lh $(find ./ -type f -size +100M)

记录一次错误:Insufficient space for shared memory file

  • 解决:临时文件目录(/tmp)下的空间不够了