问题出现和分析
在项目中,有一个环境的的应用异常,下发的任务不再执行了,接到检查任务首先就连上了服务器进行定位,首先是执行了如下命令
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 即可。
对于归档的日志清理,则直接启动了一个脚本,每个月清理一次。
##复盘 该问题由于前期分析不充分,导致重复出现,所以在处理问题的时候,不能由于赶时间就直接进行处理,还是需要全面分析影响和评估后进行修改,必要时进行评审。某些时候特殊情况可能需要应急,但是事后也需要进行分析评审,避免事件再次发生。