Linux磁盘空间被未知资源耗尽
2017-02-21 10:25
225 查看
在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://www.cnblogs.com/Richardzhu/p/3142076.html
遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭,造成内核无法回收这些文件占用的空间。
那么,如何查找那些文件被某些程序占用呢,命令如下
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://www.cnblogs.com/Richardzhu/p/3142076.html
相关文章推荐
- Linux学习之CentOS(十七)-----释放 Linux 系统预留的硬盘空间 与Linux磁盘空间被未知资源耗尽 (转)
- Linux磁盘空间被未知资源耗尽
- Linux磁盘空间被未知资源耗尽【转】
- Linux-Linux磁盘空间被未知资源耗尽
- linux磁盘空间短时间被未知资源大量占用情况处理
- Linux磁盘空间短时间被未知资源大量占用情况处理
- 磁盘被未知资源耗尽lsof -n|grep deleted
- linux故障处理:磁盘资源耗尽故障
- LINUX 磁盘空间已满
- Linux常用命令(2):有关磁盘空间的命令
- Linux磁盘空间被占用问题,根目录满了,df和du占用不一样【转】
- linux下查看磁盘剩余空间和文件夹大小
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
- Linux查看文件以及磁盘空间大小管理
- C#在Linux下获取文件夹信息(所在磁盘总大小,使用空间,已用空间,使用率)
- 【重新挂载磁盘空间】Linux系统/home的磁盘空间重新挂载给/root
- LINUX下删除文件磁盘空间不释放的原因
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
- 诡异的Linux磁盘空间被占用问题。
- linux 查看磁盘空间命令