Linux系统下提示磁盘空间满,但实际占用却很小(解决方法)

2022-06-17  本文已影响0人  无味wy

因为公司放在测试服务器上的服务比较多,磁盘经常性会满。以前满过几次,因为时间比较赶,每次只是草率的删掉一点log或者临时文件,到今天早上又发生一起事故,依然是磁盘空间满,看了一下好像没什么东西可以删。
错误描述:
发现磁盘空间满,服务数据写不进数据库中,使用du -h --max-depth=1命令查看大文件,发现文件只占40G,然而使用df -h 命令查看时,磁盘用了170G占用了百分之一百。其余的空间莫名其妙就没有了

24ec76e3d9f126a1d87807bced38dcd.png
用lsof检查后才发现原因是,有文件被删除,而进程还活着,因而造成还占用空间的现象

注意:使用此方法后关联服务会被杀掉,因为杀掉进程的时候,某些文件进程是apache或者mysql的,所以会连带着把他们也一起删掉了,千万记得查看一下服务是否还在运行,如果服务不在了,要手动开一下。 对服务器业务不熟悉者需谨慎操作!!

解决方法:

#进行查看
lsof |grep deleted
9b30f80a150f2f8d86225a20a41d5c5.png
#批量杀死进程
lsof |grep delete | grep -v grep | awk '{print $2}' | xargs kill -9

期间可能会等一段时间,等杀完后,重新 df -h 查看,磁盘空间释放

e9f8986afd6a248819bd87af7398621.png
上一篇下一篇

猜你喜欢

热点阅读