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

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

问题分析

        服务器环境

                操作系统:银河麒麟V10

                CPU:鲲鹏(ARM)

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

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

这里已经释放了部分空间所以/tmp占用为91%。

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

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

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

lsof  /tmp
Linux显示磁盘空间不足,/tmp文件夹占用100%问题分析和解决方案
  1. 通过以上截图查看占用文件的进程PID为3860289,此进行未部署的springboot项目。正常情况下重启项目即可释放,但是当前为线上项目,重启会影响用户使用。所以需要不通过重启释放空间。

解决问题

  1. 查询文件占用进程的文件fd信息 ls -i /proc/{进程PID}/fd 举例如下:
 ls -i /proc/3860289/df
Linux显示磁盘空间不足,/tmp文件夹占用100%问题分析和解决方案

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

>/proc/3860289/fd/999

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

#!/bin/bash
for i in {500..1000}
do
/proc/3860289/fd/$i
done

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

kill -9 3860289(PID)

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10723

(0)
凯影的头像凯影
上一篇 2023年12月22日 下午2:35
下一篇 2023年12月25日 下午3:58

相关推荐

  • HBase 高可用集群详细图文安装部署

    一、HBase 安装部署 1.1 Zookeeper 正常部署 首先保证 Zookeeper 集群的正常部署,并启动之。 1.2 Hadoop 正常部署  Hadoop 集群的正常部署并启动。 1.3 HBase 安装  HBase 官方下载地址:Apache Download Mirrors 1.4 HBase 的配置文件  1.4.1 hbas…

    2023年12月15日
    1.0K00
  • Linux忘记文件具体位置,怎么快速找到

    要查找目录或者文件,可以使用ls、find和locate命令;要查找指定的源文件、二进制文件和manual文件等,可以使用whereis命令;要查询命令或者别名的位置,可以使用which命令。 ls命令 ls(list)命令是Linux和Unix系统中一个非常基本和常用的命令,用于列出指定目录中的文件和子目录。ls命令的主要功能是显示目录内容,包括文件名、权…

    2023年12月8日
    81600
  • CentOS 6 yum安装软件报错 YumRepo Error

    在CentOS 6的机器上使用yum 安装软件报错: 使用yum update命令也是一样: 看错误提示,似乎是说找不到有效的baseurl。所以要解决这个问题,还要从baseurl着手。从官方邮件可知,CentOS 6自从2020年11月30日开始,官方不再维护,所以连带着原来的yum存储库也不能用了。 但是邮件里说得很明白,它给出了迁移后的存储库的链接地…

    2023年5月25日
    96800
  • 通过远程桌面连接Windows实例提示“远程连接计算机需要网络级别身份验证”怎么办?

    问题描述 使用远程桌面连接工具登录Windows系统的ECS实例失败,并提示“远程连接计算机需要网络级别身份验证”的报错,如下图所示。 问题原因 本地Windows主机的远程桌面连接工具版本过低,导致远程连接失败。 解决方案 下列操作以Windows Server 2012 R2 64位操作系统为例,其它版本的操作系统的配置可能有所差异,具体情况请参考相应操…

    2023年11月22日
    1.3K00
  • Windows10 此用户无法登录,因为该账户当前已被禁用

    当我访问同事电脑共享文件夹时,弹出如下提示框:(可以在命令提示符上ping通,就是死活不能访问) 网上的那些置顶解决办法我就不说了,什么修改本地策略、安全策略,什么关闭防火墙啦、什么打开网络发现啦……..    压根球用没有!!我这里用的是找得小众化的偏方: 1、打开控制面板; 2、选择用户账户; 3、打…

    2023年2月17日
    1.9K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信