Liunx 文件删除后 Disk 空间未释放

问题描述

有一个服务器Disk空间告警,删除文件后依然未能释放空间。

300

原因排查

# 删除的 log4j console out 日志文件
# 100G
rm logs/connectDistributed.out

但是Disk空间并未释放,怀疑是删除的文件未被释放

sudo lsof | grep deleted

300

进程483844的connectDistributed.out 是已经删除,单文件并未被释放。
需要终止进程释放这个文件(进程结束后,空间会自动释放,重启进程服务也可以达到这个目的)

  • 其它方案(不终止进程,截断文件)

sudo truncate -s 0 /data/kafka_2.13-3.8.0/logs/connectDistributed.out

预防

避免删除进程正在写入的文件,需要清理可采用truncate 清空文件


truncate -s 0 /data/kafka_2.13-3.8.0/logs/connectDistributed.out

  • 删除一个正在读写的文件,文件描述符可能持续大幅波动(文件句柄)
    如下图(左侧为删除前,右侧是删除后)
    300