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
|
通过如下命令测试脚本是否正常运行:
1 2
| chmod 777 cleanCache.sh ./cleanCache.sh
|
下面开始设置自动定期清理,输入如下命令,打开配置文件 crontab -e,在末尾添加如下内容(每天 0 点的时候执行一次,可以按需更改):
1
| * 0 * * * ./路径/cleanCache.sh
|
然后输入如下指令可以查看是否成功:
阿里云服务器启用虚拟内存
阿里云服务器默认没有开启虚拟内存,经常遇到软件内存不足,运行崩溃的情况。
1. 创建虚拟内存磁盘卷
1 2 3
|
dd if=/dev/zero of=/swap/swapadd bs=1024 count=2024288
|
2. 将磁盘卷转为虚拟内存卷
3. 启用虚拟内存服务
1 2
| swapon /swap/swapadd free -h
|
4. 关闭虚拟内存服务
1
| swapoff -v /swap/swapadd
|
5. 移动虚拟内存空间
如果当前的虚存所在的磁盘空间不够,可以首先关闭虚存服务,将其移动到别的磁盘,再启用即可:
1 2 3
| swapoff -v /swap/swapadd mv /swap/swapadd /mnt/swap swapon /swap/swapadd
|
磁盘清理
查看所有的 jobs 的磁盘占用情况
max-depth 参数表示目录查找深度:
查看磁盘空间使用情况
查看是哪个文件占用空间比较大
清空日志文件
清空日志文件(而非删除,避免一些系统级别的错误导致不产生日志):
1
| cat /dev/null > file.log
|
查找大于 100M 的文件
1
| ls -lh $(find ./ -type f -size +100M)
|
记录一次错误:Insufficient space for shared memory file
解决:临时文件目录(/tmp)下的空间不够了。