lsof查看占用高_lsof解决磁盘占用过高,查询却无大文件处理一例!
发布日期:2021-06-24 16:44:47 浏览次数:4 分类:技术文章

本文共 698 字,大约阅读时间需要 2 分钟。

巡检发现一个服务器占用到了96%,使用“find / -type f -size +1024M”查询了一下只有一个19G的文件比较大,而且500G的硬盘,3个多小时没有执行完这个命令。于是搜索半天,发现了一个可能很多人都会知道,但会忽视的问题就是(以下为原文摘抄):

“就是在Linux的文件系统中删除一个文件,系统并不会真的立刻把这个文件丢弃掉,而只是把它从文件的目录系统中移除, 只有确保所有使用这个文件的程序全部都退出后,才会真的把文件彻底删除掉。”

于是做如下操作,发现了真正占用空间的文件:

1、首先执行,发现如下图所示的占用文件:

lsof  | grep '(deleted)'

0818b9ca8b590ca3270a3433284dd417.png

2、把占用文件的进程杀掉;

kill -9 31753

3、由于这个是jboss的服务,所以杀掉进程后重启了jboss服务,然后在看占用就正常了,万恶的logo挡住了,之前是96%,重启进程后降到了46%。

0818b9ca8b590ca3270a3433284dd417.png

总结:

其实总结过程不难看出,这应该是之前删除/tmp下jar文件的同事忽略了这个文件是被进程占用的情况,删除了文件没有重启进程所导致的。在linux系统中删除积累性文件时可以使用lsof命令查看一下文件是否有被进程占用,在进行删除和相关删除后的操作,避免这种问题的产生。

延伸:

根据搜索到的参考文章,du -h -x --max-depth=1命令可以查看到那个目录占用的空间较大。命令中-x参数会让命令不统计不在同一个磁盘分区上目录,或换句话说,忽略其他的磁盘挂载点。

参考文章:http://blog.csdn.net/scythe666/article/details/52020934

转载地址:https://blog.csdn.net/weixin_33921444/article/details/112998678 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:dht11温湿度传感器_基于Arduino的温湿度pm2.5wifi联网传输OneNet平台(原理图+源码+pcb+文档)...
下一篇:asynctask 同步问题_java-在AsyncTask中同步两个并发网络调用

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月31日 12时15分39秒