文件已经删除但磁盘空间未释放

1、背景

系统提示磁盘使用率已经达到85%。排查系统日志查看是否有大文件,将系统日志清理后,发现磁盘使用率恢复到了80%以下,但是磁盘使用率相较其他服务器依然很高,随着日志文件的写入,磁盘空间使用率不断上涨,用不了多久很快就会又达到告警阈值。而排查系统此时已经没有大文件了。磁盘使用率依然这么高肯定服务器有异常情况,最终发现是日志文件已经删除,但实际进程还在占用文件句柄,文件还是打开的空间没有释放。

2、解决

2.1 重启应用

进程重启后才会释放空间。

2.2 清空文件

首先查询哪些文件已删除但是空间没有释放。

lsof |grep -i delete

java      228 admin    1w   REG             252,26 19932631136     524295 /export/Logs/globle-1.log (deleted)
java      228 admin    2w   REG             252,26 19932631136     524295 /export/Logs/globle-1.log (deleted)

找到打开这个文件的系统fd。

ll /proc/228/fd |grep globle-1.log

l-wx------ 1 admin admin 64 May 21 21:30 1 -> /export/Logs/globle-1.log (deleted)
l-wx------ 1 admin admin 64 May 21 21:30 2 -> /export/Logs/globle-1.log (deleted)

通过fd清空文件,此处的228是进程ID。

echo > /proc/228/fd/1
echo > /proc/228/fd/2

经过以上操作后服务器磁盘空间使用率恢复正常。但是此方式只是清空了文件内容,如果有新的删除操作,会产生新的文件继续占用磁盘空间。解决办法就是重启应用服务器。

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 00:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 00:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 00:34:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 00:34:02       20 阅读

热门阅读

  1. TikTok限流封号要如何处理

    2024-06-14 00:34:02       7 阅读
  2. 关于自学编程的9点忠告

    2024-06-14 00:34:02       6 阅读
  3. vue中v-bind控制class和style

    2024-06-14 00:34:02       11 阅读
  4. 使用Python多线程批量压缩图片文件

    2024-06-14 00:34:02       7 阅读
  5. PTA:7-186 水仙花数

    2024-06-14 00:34:02       8 阅读
  6. 6-11 函数题:某范围中的最小值

    2024-06-14 00:34:02       8 阅读
  7. SIM卡 移动、联通、电信对比

    2024-06-14 00:34:02       11 阅读
  8. 【ZZULIOJ】1104: 求因子和(函数专题)

    2024-06-14 00:34:02       7 阅读
  9. QT QByteArray 的用法

    2024-06-14 00:34:02       10 阅读