Linux磁盘空间使用率100%解决办法

  • 磁盘空间使用率很高的解决办法
    • 事情发生的原因
    • 方法一:删除未被进程引用的大文件、
    • 方法二:删除被磁盘引用的大文件
    • 总结

磁盘空间使用率很高的解决办法

事情发生的原因

本人在服务器上面部署了一个java项目,项目中使用了RabbitMQ 消息中间件,项目有一个功能是,用户登录后会发一封邮件到登录用户的邮箱(这里就是使用RabbitMQ 异步完成)。为了给其他人观看项目,我就新建了一个账号,但是忘记了存储邮箱,所以发送消息后,消息发送邮件时一直报错。就导致日志文件变得无比大,后面就是磁盘满了。

方法一:删除未被进程引用的大文件、

这一类文件,就是孤立存在磁盘上的,内存中没有人使用它,删除它能直接达到回收空间的效果。

  1. 使用df命令可以看到 Use 列 就是磁盘使用得百分比。可以看见文件系统/dev/vda1 已经
[root@VM-0-9-centos: test]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   50G     0 100% /
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M   24K  920M   1% /dev/shm
tmpfs           920M   48M  872M   6% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0
  1. 进入根目录查看文件占用情况
[root@VM-0-9-centos: /]#du -sh * | grep G
1.2G    apps
du: cannot access ‘proc/9507/task/9507/fd/4’: No such file or directory
du: cannot access ‘proc/9507/task/9507/fdinfo/4’: No such file or directory
du: cannot access ‘proc/9507/fd/4’: No such file or directory
du: cannot access ‘proc/9507/fdinfo/4’: No such file or directory
3.5G    project
34G root
8.8G    usr
1.8G    var

可以看到,在root目录下有34G的文件,我们进入root目录,重复执行上面的命令找到大文件:

[root@VM-0-9-centos: ~]#du -sh *
9.8G    a.txt
4.0K    deployJD.sh
469M    mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
1016K   nginx-1.18.0.tar.gz
4.0K    null
85M otp_src_23.0.tar.gz
15M rabbitmq-server-generic-unix-3.8.5.tar.xz
2.2M    redis-6.0.6.tar.gz
24G test
4.0K    test.sh

找到大文件后,将其删除

[root@VM-0-9-centos: ~]#rm -rf a.txt
[root@VM-0-9-centos: ~]#rm -rf test

再次执行 df -h 查看磁盘使用量

[root@VM-0-9-centos: ~]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   16G   31G  35% /
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M   24K  920M   1% /dev/shm
tmpfs           920M   48M  872M   6% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0

注意:这里删除的两个文件,在进程中是没有被引用的,所以删除后就能直接看到效果。
还有一种情况,就是需要删除的文件已经被进程引用了(例如:项目引用的日志文件),这时删除文件后,使用df -h发现和删除前一样。

方法二:删除被磁盘引用的大文件

被内存引用的文件,即使磁盘上被删除了,但是在内存中还在使用(未删除完成)。
这里我使用的是启动一个web项目,然后往日志文件中写入数据,使其变成一个几十G的文件。

  1. 查看文件大小 4.9k
[root@VM-0-9-centos: jd]#ll -h springboot.log
-rw-r--r-- 1 root root 4.9K Aug 21 20:27 springboot.log
  1. 写入文件数据
[root@VM-0-9-centos: jd]#dd if=/dev/zero of=./springboot.log bs=1024k count=102400
dd: error writing ‘./springboot.log’: No space left on device
33965+0 records in
33964+0 records out
35614191616 bytes (36 GB) copied, 315.715 s, 113 MB/s[root@VM-0-9-centos: jd]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   50G     0 100% /
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M   24K  920M   1% /dev/shm
tmpfs           920M   48M  872M   6% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0
  1. 此时我们根据第一种方法进行排查删除文件
[root@VM-0-9-centos: jd]#cd /[root@VM-0-9-centos: /]#du -sh * | grep G
1.2G    apps
du: cannot access ‘proc/13650/task/13650/fd/4’: No such file or directory
du: cannot access ‘proc/13650/task/13650/fdinfo/4’: No such file or directory
du: cannot access ‘proc/13650/fd/4’: No such file or directory
du: cannot access ‘proc/13650/fdinfo/4’: No such file or directory
37G project
8.8G    usr
1.8G    var[root@VM-0-9-centos: /]#cd /project/jd[root@VM-0-9-centos: jd]#ll -h springboot.log
-rw-r--r-- 1 root root 34G Aug 21 20:38 springboot.log[root@VM-0-9-centos: jd]#rm -rf springboot.log[root@VM-0-9-centos: jd]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   50G     0 100% /
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M   24K  920M   1% /dev/shm
tmpfs           920M  8.7M  911M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/

可以看到删除文件后 df -h命令查询出来还是没变,下面是解决方法:

查找上面删除的文件,被引用的PID,然后kill掉进程

[root@VM-0-9-centos: jd]#lsof | grep deleted......java      10615                 root    1w      REG              253,1 35614191616    1442201 /project/jd/springboot.log (deleted)
java      10615                 root    2w      REG              253,1 35614191616    1442201 /project/jd/springboot.log (deleted)
java      10615 10616           root    1w      REG              253,1 35614191616    1442201 /project/jd/springboot.log (deleted)
java      10615 10616           root    2w      REG              253,1 35614191616    1442201 /project/jd/springboot.log (deleted)
java      10615 10617           root    1w      REG              253,1 35614191616    1442201 /project/jd/springboot.log (deleted)
...

杀掉指定的进程,然后再查看磁盘使用率,发现磁盘空间已经回收成功。

[root@VM-0-9-centos: jd]#kill -9 10615[root@VM-0-9-centos: jd]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   16G   31G  35% /
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M   24K  920M   1% /dev/shm
tmpfs           920M  8.7M  911M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0
[1]+  Killed                  nohup java -Dloader.path="lib/" -jar myproject-0.0.1-SNAPSHOT.jar > springboot.log 2>&1

总结

做个笔记

Linux磁盘空间使用率100%解决办法相关推荐

  1. 使用硬盘空间少的linux系统,linux磁盘空间不足的解决办法

    一些linux系统电脑用户在使用一些应用程序的时候,会被提醒:磁盘空间不足的问题,因此,就有网友想知道:linux查看磁盘空间的方法,以及linux磁盘空间不足的原因和解决方法.下面,就一起来看看今天 ...

  2. 虚拟机linux磁盘空间不足的解决办法

    今天用ssh登陆sqlplus时,报了下面磁盘空间不足的错误: [oracle@orcl ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - ...

  3. mysql 磁盘利用率100_磁盘空间使用率100%的故障处理

    磁盘空间使用率100%的故障处理过程 环境介绍: 1.云服务器 2.操作系统 CentOS 5.6 3.内存8G 磁盘与挂载路径的介绍: mounted on                   si ...

  4. No space left on device 磁盘空间提示不足解决办法

    首先先要解释什么是inode? inode在linux中,每个文件,不管大小是多少都会对应一个inode,inode就是一个专门用来保存文件属性,权限和指针(指向block) inodex满了会导致什 ...

  5. 磁盘空间不足的解决办法

    先说一下用于磁盘空间快满时检查 很多小伙伴会想到find  ,这个想法是好的,不过find 有点慢,也不方便,例如: find /home1 -type f -size +1000000k 如果我们这 ...

  6. Docker磁盘空间满的解决办法

    今天在服务器上基于docker容器搭建mysql主从时,然后重启docker,发现容器启动不了了,报的错误是:"ERROR:cannot  create temporary director ...

  7. linux 根目录磁盘占满,linux磁盘空间满,解决方法

    1.查看磁盘使用情况 [root@localhost ~]# df -h ?? 文件系统             容量  已用  可用 已用% 挂载点 /dev/mapper/cl-root   50 ...

  8. linux磁盘空间不足解决方法

    原文链接:linux磁盘空间不足解决方法 一个之前运行好好的服务突然挂掉了,可能的原因有两个,一是磁盘满了,二是内存满了. 这里只介绍磁盘空间不足的解决办法 1.首先确定是否是磁盘空间不足 输入命令: ...

  9. linux好几百g空间使用,linux磁盘空间被占用100%-148

    一台测试服务器(4.17)服务器硬盘物理空间300g使用率是百分之百 1)df显示硬盘用完了,查看系统没大大文件删除部分文件还是显示全部用完 # df -h /dev/sda3             ...

最新文章

  1. List(JDK1.7)(1)
  2. 5G是卡位未来的重要基础设施 物联网已成为新的攻击入口
  3. Centos7 下Redis3安装
  4. 10分钟,快速使用VUE-VUEX
  5. pbr 多出口_结合BFD基于PBR的多出口流量转发的控制与备份
  6. 从 Java 替代品到打造完整生态,Kotlin 10 岁了!
  7. 51nod1245 Binomial Coefficients Revenge
  8. 2.2. 全国各地ISP IP表
  9. 一起谈.NET技术,DataTable 深入解析数据源绑定原理之高级篇
  10. mt4 指标 涨跌幅 颜色k线_通达信K线波段操盘指标公式
  11. 就个人开发而言,Ubuntu比Debian更适合
  12. pytorch F.conv2d(函数式接口)
  13. SQL 查询分析器操作(修改、添加、删除)表及字段等
  14. 解读翻译李飞飞-Hiding Data With Deep Networks
  15. Ambarella公司申请首次公开招股
  16. 口碑极好的SAP PP培训视频, 21G, 52个视频
  17. PHP 26个英文字母递增
  18. 1-1/2+1/3-1/4+.........+1/99-1/100
  19. 希尔伯特到解析信号,再到复包络
  20. 使用虹软SDK进行视频人脸识别

热门文章

  1. 细节决定成就,Cocos助力H5火爆游戏《猪来了》
  2. 物联网时代的网络安全
  3. 管理学家杂志管理学家杂志社管理学家编辑部2022年第12期目录
  4. 视频平台完善“青少年模式”,应先“从无到有”再“从有到优”
  5. LoRA学习: SX1276/SX1277/SX1278对比
  6. 英语翻译器拍照翻译扫一扫,让你更轻松地理解英语文章
  7. 一文了解手势识别GestureDetector
  8. word “兼职”-----不单单是文字处理
  9. 【Cprimerplus_03】算术运算符、关系运算符、逻辑运算符
  10. 时间转时间戳 时间戳转时间