服务器磁盘又双叒叕爆满了?被/proc占满?

又双叒叕服务器

  • 前言
  • 排查
  • 分析

前言

继上一次文章:
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.

通过删除tomcat下的catalina.out文件,解决了磁盘爆满的问题后。今天又双叒叕出现这个问题。。。
服务器磁盘又双叒叕爆满了?被/proc占满?_第1张图片
接着干它!

排查

用跟上次,同样的方法定位到根目录下的/proc目录。不知道/proc目录干嘛的?
参考以下文章 Linux 下的 /proc 目录介绍。

简单来说就是保存内存信息的。这说明有的进程,所占用的文件大小塞满了磁盘

使用

ps -ef | wc -l

命令查看当前所有进程的数量
在这里插入图片描述
四百多个进程 没啥问题。

再进一步看看所有进程的详细信息

ps -ef

瞪着眼睛看了半天,也没看出什么问题。。。
服务器磁盘又双叒叕爆满了?被/proc占满?_第2张图片
想了下之前并没有出现这种问题,再结合进程正常的信息。很明显这次问题出现在我删除了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日志文件的时候,系统里的相应进程没有结束,所以导致那个文件夹一直占用系统内存

你可能感兴趣的:(排错,服务器,linux,tomcat)