Linux磁盘空间被未知资源耗尽
2012-10-07 18:47
120 查看
在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小。
遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭,造成内核无法回收这些文件占用的空间。
那么,如何查找那些文件被某些程序占用呢,命令如下
命令打lsof -n | grep deleted印出所有针对已删除文件的读写操作,这类操作是无效的,也正是磁盘空间莫名消失的根本原因
备注:本人遇到的场景是同事删除了mysql的表,但是是在shell上执行rm表的文件,而不是通过drop table之类的命令去删除表的,于是mysql会一直占用这些表文件的句柄,最后造成磁盘空间100%,这种情况下,也不用重启mysql,只要进入mysql客户端执行flush tables就行了
参考资料 http://hi.baidu.com/higkoo/item/6a478917d1a819debf9042f1
遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭,造成内核无法回收这些文件占用的空间。
那么,如何查找那些文件被某些程序占用呢,命令如下
lsof -n | grep deleted COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME dd 31708 higkoo 1w REG 8,2 5523705856 429590 /data/filetest (deleted)
命令打lsof -n | grep deleted印出所有针对已删除文件的读写操作,这类操作是无效的,也正是磁盘空间莫名消失的根本原因
备注:本人遇到的场景是同事删除了mysql的表,但是是在shell上执行rm表的文件,而不是通过drop table之类的命令去删除表的,于是mysql会一直占用这些表文件的句柄,最后造成磁盘空间100%,这种情况下,也不用重启mysql,只要进入mysql客户端执行flush tables就行了
参考资料 http://hi.baidu.com/higkoo/item/6a478917d1a819debf9042f1
相关文章推荐
- Linux磁盘空间被未知资源耗尽的解决方法
- Linux磁盘空间被未知资源耗尽
- Linux磁盘空间被未知资源耗尽100%
- Linux磁盘空间被未知资源耗尽【转】
- Linux学习之CentOS(十七)-----释放 Linux 系统预留的硬盘空间 与Linux磁盘空间被未知资源耗尽 (转)
- Linux磁盘空间被未知资源耗尽
- Linux磁盘空间被未知资源耗尽
- 磁盘被未知资源耗尽lsof -n|grep deleted
- Linux-Linux磁盘空间被未知资源耗尽
- 耗尽CPU资源的Explored病毒清除法
- 资源被耗尽,该用户无法登陆
- 服务器为什么这么慢?耗尽了CPU、RAM和磁盘I/O资源
- 遭遇VMIprvse.exe病毒文件把CPU资源耗尽
- (转)压测中How to耗尽linux资源(CPU,IO,Mem)
- 关于正则表达式匹配无异常资源耗尽的解决方案
- ssh分页时服务器资源耗尽问题
- 核心数据库由于大量的latch free导致CPU资源耗尽的现场解决过程
- Android错误引用自定义资源数据类型,造成安装解析产生未知错误
- GDI资源为什么会耗尽呢,到哪种程度才表现为耗尽呢?
- 生产上数据库大量的latch free 导致的CPU资源耗尽的问题的解决