背景:
/分区被堆满了,导致一些服务无法正常运行。在删掉/下占用空间大的文件后,查看该分区占用率依旧很高。
解决:
1对/下所有文件大小进行统计,排查文件存储占用磁盘空间
#du -sh /*
2排查inode使用率过高将磁盘空间占满
#df -i
3排查空间不释放问题
#lsof |grep deleted|awk '{print $2}'|uniq #把输出的值kill -9删除掉,df -h再次查看 #执行时可能会卡顿,耐心等待即可
结果:
排查到由于空间不释放原因导致磁盘占用100%。杀死僵死文件【已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间】后查看恢复正常。
后续:
服务正常运行2天以后又出现磁盘占用率高的问题。可通过以下命令查看导致僵死文件的具体进程
#lsof |grep deleted|awk '{print $1}'|uniq可以查看占用进程名称
或者
#lsof |grep deleted|awk '{print $2}'|uniq #输出进程号
#ps -ef|grep 输出进程号 #查看具体进程