linux上项目运行日志导致磁盘空间不够的问题

我们的项目都已经运行了半年多,但是昨天突然监控系统报警说两台服务器空间不够了

好嘛,用df -h 一看,占用率都他么100%了,然后找了下发现了问题:

问题1:

nohup.out文件多大

问题2:

log文件夹里昨天的日志文件达到了几个G到10几个G

其实这个设计的时候有些问题,nohup.out只是为了在测试上运行项目的时候,开启阶段我们能看到启动过程,最后有个运行于8080接口这句话就算是成功了,之后的访问我们项目的日志就都去log文件夹里的XX月XX日.log文件看了,结果呢,nohup.out也全都输出了一遍,重点是,没这个必要啊,这半年一直处于累加状态,本来也没事,我们一个服务器有50G的磁盘空间。

昨天业务那边查了一个营销员的数据,这家伙太厉害,一个人不知道搞了多少保单,对应的关联信息真的是太多了,我们还把每个相关联信息的查询结果都打印了日志,再加上业务疯狂点击查询这个人,这就导致迅速增加的日志文件,爆了我们的服务器。

找到问题之后就着手解决吧,因为是生产上的服务,所以不能随随便便就停了对吧,所以就先用  >nohup.out  清空了这个文件

之后发现效果明显,内存降了得有10个G。之后又开始删log里的当天日志.log文件,这就出现了很奇怪的问题,明明已经用rm命令删除掉了,而且ll -h也看不到那个文件了,但是dh -f 还是没有变化

后来网上找了一下,发现这个日志文件因为被生产占用,所以他只是从文件结构中删除,但是磁盘空间还没释放掉,查看是不是真的是这样用了一个命令lsof | grep deleted 发现确实


出现了相关文件的这个状态XX.log文件(deleted),证明了确实被占用,无奈只能在重启项目对应的进程才能让空间释放出来,好在我们是2台服务器8端口运行服务,一台服务器关掉了,另一台还能坚持,于是重启了第一台,

ok搞定,重启第二台,我擦,居然dh -f没有变化!!!这就很玄学了,后来查了下发现可能是系统bug,需要重启linux系统才能解决,暂时就到这里,等效果吧,至于这个隐患的修复需要下次生产上线前排除掉所有相关日志的输出,特别是这种极有可能出现一个人对应一大堆数据的服务,日志真的不能乱打啊。如有问题存在后续。


参考博客:https://blog.csdn.net/CJF_iceKing/article/details/37593963

你可能感兴趣的:(linux)