前两天一直在搞服务器,系统运行了一段时间后,突然磁盘就爆满了。
磁盘爆满的话会导致一系列的诡异问题。。。。所以这个问题很严重。
首先,先df -h看看,/home 下果然是满了。一共150G 的磁盘,只剩下 7G了。
那么就看看是哪些文件占用了吧。
使用du -h --max-depth 查看home底下有哪些文件
发现,纳尼,一共才84个G的文件。这个就厉害了。
还有70G的磁盘去哪了?
这里我们要科普下 df和du的原理。
df是使用文件信息扫描,就是说,它直接去读取文件本身信息中的文件大小(文件的属性信息)然后叠加求和后显示。这样df就可以很快的出结果啦,不用一个一个的扫描。
du就是老实人,不相信别人统计好的,自己一个一个的去磁盘看每个文件的实际占用文件大小。最后才出结果。这个就会导致du的速度很慢。
问题来了,当你有些文件,他的文件信息和实际存储文件大小不一样的时候,就会导致磁盘莫名的丢失了。
我就是因为我删了一个很大的日志文件,虽然那个文件我删除了,导致他的磁盘空间被释放了,但是由于那个日志的程序没有结束,导致日志文件的句柄一直在,df的时候就会读取这个句柄中文件信息,产生70G的磁盘黑洞
嗯嗯嗯~问题解决了,把那个应用一杀,磁盘就回来了。哈哈哈。
这个应用的开发人员是太喜欢日志了么,70G的日志。。。。。。。