lsof排查空间不足

线上问题,

df -h

提示使用率已经100%,然后挨个进行du -sh 目录进行排查,发现真实文件占用的只有5G左右
因此,按照网上说的使用

lsof -n | grep delete

发现有大量的数据被写入已删除的日志文件,因为没有地方输出,所以全部存储在proc下面的临时文件中,这些东西在du -sh的时候没有被计算起来,但是确实占用着磁盘空间
因为直接kill对应的进程有可能导致线上服务出现异常,于是下班后reboot服务器,果然恢复了正常的使用。

另外,发现lsof 可以用来恢复已删除文件,详情可以看
https://blog.youkuaiyun.com/dutsoft/article/details/51248761

### Linux 系统磁盘空间不足排查方法及解决步骤 #### 1. 检查磁盘空间使用情况 通过以下命令检查磁盘空间的总体使用情况: ```bash df -h ``` 该命令会列出所有挂载点的磁盘使用情况,包括已用空间、可用空间和使用百分比[^1]。 同时,可以使用以下命令检查各目录的详细占用情况: ```bash du -hs * 2>/dev/null ``` 或 ```bash du -h -d 1 2>/dev/null ``` 这些命令可以帮助定位具体哪个目录占用了大量磁盘空间[^3]。 #### 2. 分析问题原因 根据检查结果,可能的原因包括但不限于以下几种: - **磁盘空间不足**:文件过大或文件数量过多导致磁盘空间耗尽。可以通过删除不必要的大文件或清理临时文件来释放空间。 - **被删除但仍在使用的文件**:某些进程可能仍然持有已被删除的文件句柄,导致磁盘空间无法释放。可以使用以下命令查找此类文件: ```bash lsof | grep deleted ``` 如果发现有被删除但仍被占用的文件,可以通过重启相关进程或系统来释放空间[^2]。 - **inode 节点耗尽**:即使磁盘空间看似充足,但如果 inode 节点耗尽,也可能导致无法创建新文件。可以使用以下命令检查 inode 使用情况: ```bash df -i ``` #### 3. 解决方案 根据不同的问题原因,采取相应的解决措施: - **删除大文件或冗余文件**: 使用 `du` 命令定位占用空间较大的文件,并手动删除不需要的文件。例如: ```bash find / -type f -size +100M -exec ls -lh {} \; ``` 上述命令会列出大于 100MB 的文件,用户可以根据需求选择性删除。 - **清理临时文件**: 清理 `/tmp` 和 `/var/tmp` 目录中的临时文件,这些文件通常可以安全删除: ```bash rm -rf /tmp/* rm -rf /var/tmp/* ``` - **处理被删除但仍在使用的文件**: 对于 `lsof | grep deleted` 找到的文件,可以通过以下方式释放空间: ```bash > /proc/<PID>/fd/<FD> ``` 其中 `<PID>` 是进程 ID,`<FD>` 是文件描述符。此操作会清空文件内容,从而释放磁盘空间[^4]。 - **清理邮件队列**: 如果 `/var/spool/clientmqueue` 占用大量空间,可能是由于未启动 `sendmail` 导致邮件积压。可以使用以下命令清理: ```bash ls /var/spool/clientmqueue/ | xargs rm -f ``` - **扩展磁盘空间**: 如果上述方法无法解决问题,可以考虑扩展磁盘空间。对于虚拟机环境,可以通过增加虚拟磁盘大小并重新分区来实现。例如: ```bash fdisk /dev/sda mkfs.ext4 /dev/sdaX mount /dev/sdaX /mnt/new_partition ``` #### 4. 预防措施 为避免磁盘空间不足的问题反复出现,可以采取以下预防措施: - 定期监控磁盘使用情况,设置告警阈值。 - 配置日志轮转策略,限制日志文件大小。 - 定期清理临时文件和无用数据。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值