生产环境一台服务器磁盘使用率达到百分之90,出现告警,但是通过du -sh |sort -h 看到实际使用空间并没有那么多,如下图显示vda3已经使用空间90G,实际所有目录共使用78G左右,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放
接着我们通过lsof命令查找运行中的进程占用已经删除的文件(僵死文件。这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间,使用如下命令可以查看死文件占用情况),使用命令
lsof | grep delete |sort -nrk 7|more
sort -nrk 7是将已经删除的文件进行大小排序
同一个文件被多个 nginx worker 占用。重启nginx将此文件彻底释放即可。