lsof解决磁盘占用过高,查询却无大文件处理一例!
2017-02-22 19:28
323 查看
巡检发现一个服务器占用到了96%,使用“find / -type f -size +1024M”查询了一下只有一个19G的文件比较大,而且500G的硬盘,3个多小时没有执行完这个命令。于是搜索半天,发现了一个可能很多人都会知道,但会忽视的问题就是(以下为原文摘抄):
“就是在Linux的文件系统中删除一个文件,系统并不会真的立刻把这个文件丢弃掉,而只是把它从文件的目录系统中移除, 只有确保所有使用这个文件的程序全部都退出后,才会真的把文件彻底删除掉。”
于是做如下操作,发现了真正占用空间的文件:
1、首先执行,发现如下图所示的占用文件:
2、把占用文件的进程杀掉;
总结:
其实总结过程不难看出,这应该是之前删除/tmp下jar文件的同事忽略了这个文件是被进程占用的情况,删除了文件没有重启进程所导致的。在linux系统中删除积累性文件时可以使用lsof命令查看一下文件是否有被进程占用,在进行删除和相关删除后的操作,避免这种问题的产生。
延伸:
根据搜索到的参考文章,du -h -x --max-depth=1命令可以查看到那个目录占用的空间较大。命令中-x参数会让命令不统计不在同一个磁盘分区上目录,或换句话说,忽略其他的磁盘挂载点。
参考文章:http://blog.csdn.net/scythe666/article/details/52020934
“就是在Linux的文件系统中删除一个文件,系统并不会真的立刻把这个文件丢弃掉,而只是把它从文件的目录系统中移除, 只有确保所有使用这个文件的程序全部都退出后,才会真的把文件彻底删除掉。”
于是做如下操作,发现了真正占用空间的文件:
1、首先执行,发现如下图所示的占用文件:
lsof | grep '(deleted)'
2、把占用文件的进程杀掉;
kill -9 31753
3、由于这个是jboss的服务,所以杀掉进程后重启了jboss服务,然后在看占用就正常了,万恶的logo挡住了,之前是96%,重启进程后降到了46%。
总结:
其实总结过程不难看出,这应该是之前删除/tmp下jar文件的同事忽略了这个文件是被进程占用的情况,删除了文件没有重启进程所导致的。在linux系统中删除积累性文件时可以使用lsof命令查看一下文件是否有被进程占用,在进行删除和相关删除后的操作,避免这种问题的产生。
延伸:
根据搜索到的参考文章,du -h -x --max-depth=1命令可以查看到那个目录占用的空间较大。命令中-x参数会让命令不统计不在同一个磁盘分区上目录,或换句话说,忽略其他的磁盘挂载点。
参考文章:http://blog.csdn.net/scythe666/article/details/52020934
相关文章推荐
- ClearCase故障处理一例:解决eclipsed状态的私有文件不能被删除
- Linux x64 下 Matlab R2013a 300 kb 脚本文件调试的 CPU 占用过高问题的解决办法
- 解决MongoDB 日志文件过大,清理后还占用很大磁盘空间的问题
- 一例由于一网站cpu占用过高导致服务器cpu占用始终是100%的问题解决
- svchost.exe占用cpu过高怎么处理(原因及解决办法)
- 解决solaris zfs文件系统内存占用过高
- mfs 在拷文件时的错误解决一例磁盘inode不够用
- SQL查询某数据库各表占用磁盘空间和收缩数据库MDF文件
- [磁盘空间]lsof处理文件恢复、句柄以及空间释放问题
- ClearCase故障处理一例:解决eclipsed状态的私有文件不能被删除
- Linux系统下处理已删除文件继续占用磁盘空间的问题
- SQL查询某数据库各表占用磁盘空间和收缩数据库MDF文件
- E04-文件删除了但是依旧占用磁盘空间的解决办法
- 通过修改my.ini配置文件来解决MySQL 5.6 内存占用过高的问题
- ------------解决 svchost 占用过高及磁盘最长活时间过高问题------win---------
- 解决一例:“无法删除文件,无法读源文件或磁盘”
- 磁盘IO占用过高解决方法
- Hadoop处理大量小文件的问题和解决方法
- linux查找系统中占用磁盘空间最大的文件
- ORACLE ASM中查询表空间使用情况、数据文件路径、裸设备磁盘总大小剩余大小