分享

Linux显示磁盘空间不足,/tmp文件夹占用100%问题分析和解决方案

 明神月 2023-12-15 发布于北京

系统运行过程中发现无法上传文件,第一反应是磁盘空间不足导致,登录服务器后查看文件存放的空间充足,但是无法上传文件且命令行的tab键自动补充也提示空间不足。最后经过搜索和分析发现是/tmp 文件夹占用100%导致。以下记录分析和解决流程。

1. 通过 df -h 查看磁盘占用,发现/dev/vdb1 (文件存放路径)占用42%,空间充足;但是/tmp 文件夹占用率100%;

2. 进入/tmp路径查看占用情况,发现文件占用才5.7M,实际总空间有16G

cd /tmp

3. 由于tmp为临时文件夹,文件使用结束后自动删除,猜测存在文件被删除但是空间未释放的情况。通过 lsof  /tmp 查看文件情况,发现有大量的文件被删除但是依旧被进程占用,导致无法释放空间。

lsof  /tmp

4. 通过以上截图查看占用文件的进程PID为256117,此进行未部署的springboot项目。正常情况下重启项目即可释放,但是当前为线上项目,重启会影响用户使用。所以需要不通过重启释放空间。

1. 查询文件占用进程的文件fd信息 ls -i /proc/{进程PID}/fd 举例如下:

ls -i /proc/256117/fd

2. 通过 >/proc/{进程pid}/fd/{文件fd} 解除空间占用(文件fd为上图中红色部分第一个数字),举例如下

echo '' > /proc/256117/fd/999

3. 批量解除文件占用,可通过编写shell脚本解决,举例:删除pid为256117中fd为500到1000的文件占用。

  1. #!/bin/bash

  2. for i in {500..1000}

  3. do

  4. /proc/256117/fd/$i

  5. done

4. 以上为临时删除文件占用,最后可通过重启应用解决问题 kill -9 {PID}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多