问题出现和分析

在项目中,有一个环境的的应用异常,下发的任务不再执行了,接到检查任务首先就连上了服务器进行定位,首先是执行了如下命令

ps -ef |grep java

服务看起来没挂,然后看看日志,发现好久没有写日志了,再看看磁盘

dh -f

然后发现磁盘百分之百,至此问题原因大概确定。接下来要看怎么清理

解决方法

由于赶时间,催着解决问题所以直接就在服务器上对日志进行了rm。 其中归档的日志清理后,发现还有一个nohup大文件,原来之前应用启动使用的nohup命令行启动的,日志页直接写了一份到nohup文件。同样使用命令搞定

rm -rf  删除文件

问题及时解决了

过了一段时间,任务又不执行了,继续定位......

直接查看磁盘,又满了。自此很奇怪的问题,明明清除了日志了,再执行一个du命令

du -sh  文件夹

文件夹大小占用很小空间。。。。。陷入沉思。

查找相关资料了解到可以查看删除的文件是否继续占用空间

查找占用已删除文件的进程
lsof | grep deleted

原来自己rm应用程序日志,是不会释放空间的,归档的日志到时不影响。所以当时临时解决了问题,后面又满了日志。

当即进行优化

1、首先进行应用停止,解除资源占用。 2、对日志进行优化,环境上的调试日志全部关闭,避免日志产生太多 3、对于之前直接使用nohup的命令启动方式,直接日志忽略

nohup java -jar xxx.jar >/dev/null 2>&1 &

或者日志需要保留,到其他磁盘目录,修改>/dev/null 即可。

对于归档的日志清理,则直接启动了一个脚本,每个月清理一次。

##复盘 该问题由于前期分析不充分,导致重复出现,所以在处理问题的时候,不能由于赶时间就直接进行处理,还是需要全面分析影响和评估后进行修改,必要时进行评审。某些时候特殊情况可能需要应急,但是事后也需要进行分析评审,避免事件再次发生。