今天生产环境某一台服务器,Zabbix报警空间问题,使用 df 命令查看,磁盘空间耗用接近 100%,将机器上不用的数据及日志清理掉,但是空间很快到达 100%。
使用 du 查看,想找出磁盘空间被耗用在哪里了,结果发现他输出的结果和df命令输出的结果相差很大,离100%空间占用还远着呢。
丢失的空间跑哪了,是磁盘损坏了吗?
最后百度好久,发现两个可能的原因:
1. 磁盘文件删除后,但是原先对应写文件的进程还在,仍然抓着那个文件,在往里面写数据,空间继续被他耗用,同时删除后的空间得不到释放,du 命令也看不到这个文件占用的空间。
2. 使用mount命令,挂载到一个原本有数据的目录,之前目录下的文件不可见也不会被du看到统计
我这台服务器没有做过任何挂载,问题肯定出在1上。
年少的我总是比较冲动,直接重启服务器后,空间恢复了正常。
生产环境还是应该老老实实的按照下面步骤解决
使用 lsof | grep deleted 查找被删除的文件
在外面kill掉写这个日志文件的进程,观察磁盘空间
重新运行进程
本文出自 “linux运维那些事” 博客,请务必保留此出处http://leihuajun.blog.51cto.com/12248802/1960938
原文地址:http://leihuajun.blog.51cto.com/12248802/1960938