又双叒叕服务器
- 前言
- 排查
- 分析
前言
继上一次文章:
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
通过删除tomcat下的catalina.out文件
,解决了磁盘爆满
的问题后。今天又双叒叕出现这个问题。。。
接着干它!
排查
用跟上次,同样的方法定位到根目录下的/proc
目录。不知道/proc目录干嘛的?
参考以下文章 Linux 下的 /proc 目录介绍。
简单来说就是保存内存信息的。这说明有的进程,所占用的文件大小塞满了磁盘
。
使用
ps -ef | wc -l
命令查看当前所有进程的数量
。
四百多个进程
没啥问题。
再进一步看看所有进程的详细信息
ps -ef
瞪着眼睛看了半天,也没看出什么问题。。。
想了下之前并没有出现这种问题
,再结合进程正常的信息
。很明显这次问题出现在我删除了tomcat下的catalina.out文件
以后,先去看看tomcat
的日志信息,确定下是不是tomcat的问题
,结果发现该文件是空的
。 也就是说项目在运行,但是主日志并没有记录信息
。
到这里 大概能猜出一点了:需要写日志的进程,因为某种原因无法写入到catalina.out日志文件
,而进程所对应的软链接也将磁盘的资源占满
。
先关闭tomcat
这一步是必须的,不然你无法确定,是哪些进程无法关闭。
进到tomcat的安装目录的bin目录下,执行关闭命令:
./shutdown.sh
再看看服务器上还有哪些tomcat的进程
在执行,使用:
ps -ef|grep tomcat
输出如下
可以明显看到,除了我的ps -ef|grep tomcat
命令的进程以外,还有另外的三个tomcat
的进程在运行。并且都是与catalina
相关的,这些应该就是占用内存的进程了,直接结束这些进程:
kill -9 进程号
挨个结束上面的进程,再次启动tomcat
,发现项目运行正常。再看一下磁盘占用:
df -h
发现磁盘使用率
正常就表明完事了。
分析
这次的问题应该是上次直接删除catalina.out
日志文件的时候,系统里的相应进程没有结束
,所以导致那个文件夹一直占用系统内存
。