关于linux磁盘告警问题

案例:我们在执行df命令时,查看到磁盘利用率很高,但是到相对应的目录执行du -sh *来找大文件时进行删除时,发现各个目录相加并不大,如下图:

使用df命令查看到根(/)目录使用到33G,而du命令显示只使用了2.5G

分析:

df命令:显示的是文件系统级别的磁盘空间使用情况,包括已用空间、可用空间以及挂载点等信息。通过df命令,可以得知各个分区的总空间、已用空间和剩余空间,从而了解磁盘的使用状况

du命令:du更侧重于展示文件和目录级别的磁盘占用情况,只计算文件或目录占用的磁盘空间。这个命令通常用来查找占用空间大的文件或者目录,帮助我们定位可能的磁盘空间浪费问题

当出现上述的情况的时候,我们应该怀疑是否有文件删除了,导致du 命令查找时未找到该文件,但是打开的进程还是在占用该文件,此时磁盘空间并不会得到释放,从而导致:

使用df命令查看磁盘使用率时,这些已删除未释放的文件会被统计到,而du只统计未删除的文件,从而导致两者的结果相关较大。

处理方法:

使用 lsof 命令可以显示已删除的文件,将有问题的进程/服务重启,磁盘空间就会得到释放

1.查看已删除但未释放的文件

lsof | grep delete

此时可以看到/var/log/test.log文件已经删除,但还在被tail命令占用,占用文件的进程ID可以看到是4163;

在使用ls命令时,已经查看不到该文件了

2.杀进程并验证

将异常进程关闭后,使用df命令查看磁盘空间时显示结果正常。

相关推荐
安科瑞刘鸿鹏17几秒前
当宿舍开始“提前预警”,用电安全会发生什么变化?
运维·服务器·网络·数据库
忧云1 分钟前
AirtestIDE 完全指南:从入门到实战,解放双手,实现通过图片定位元素自动化
运维·自动化·airtestide·图像识别自动化
学习嵌入式的王饱饱4 分钟前
2.Linux开发板、树莓派、香橙派等安装VNC远程桌面
linux·远程桌面·vnc·开发板远程桌面
我就是你毛毛哥4 分钟前
Linux 系统上安装 Nginx以及使用,推荐使用编译安装
linux·运维·nginx
zly35004 分钟前
CentOS系统下查看与修改网卡UUID的完整指南
linux·运维·centos
herinspace9 分钟前
管家婆软件套接字服务器打不开怎么解决
运维·服务器·数据库
txzz888810 分钟前
CentOS-Stream-10 搭建FTP服务器之虚拟用户访问(一)
linux·服务器·centos·ftp虚拟用户访问·vsftp
charlie11451419111 分钟前
快速备份与恢复 Conda 环境
linux·开发语言·windows·深度学习·机器学习·conda·环境配置
wxmtwfx13 分钟前
Linux内核时钟芯片DS3232驱动源码分析
linux·驱动开发·spi·i2c·ds3232
deriva17 分钟前
windows系统安装linux并docker部署.netcore项目
linux·docker·.netcore