记一次服务器清理过程
一进服务器查看文件按tab键报错
cannot create temp file for here-document: No space left on device
,心想估计是内存满了
处理
-
free -h查看可用内存
发现可用内存够的
-
df -h查看内存占用率
98%…首先想到的是日志满了
-
顺便看看服务器内核cat /proc/cpuinfo
cpu cores参数可以看出服务器是一核的
cpu MHz 2G -
du -sh * 查看文件占用内存大小
中间的错误可以看出问题出在哪了,由于删除了日志保存文件,但是进程仍在运行,无法写入,所以导致磁盘被占满。(我的理解是这样,具体的可以去研究下)
顺便把占用内存比较大的几个目录也清理下,可以从几个点入手
# 1. 数据库、nginx等进程可以重启下再df -h看看是否多了些可用空间 # 2. apt无用软件包,可能已经卸载了,但是安装包还在。 apt clean # 3. 清理僵尸进程及缓存 echo 3 > /proc/sys/vm/drop_caches # 4. 手动清理文件,du -sh找到最终占用内存的文件后 > file
-
top命令查看进程的cpu占用情况,其实到这步已经差不多了
总结:
好在这只是我的自己的服务器,而且内存并不大,40G,1核(阿里云赠送活动说的是2核?)。但偶尔出现的这种内存满的情况也让我提升了经验。
在公司的生产服务器上,应该编写脚本或使用工具定时清理缓存,安装包,无用文件,并对服务器资源占用情况做个阈值报警(当然阿里云对这些花钱多的客户本身就有相应的告警服务)
本篇结束