LinuxBCC实例提示空间不足问题解决
更新时间:2024-07-02
背景
在BCC Linux实例中会遇到:no space left on device 磁盘空间不足的情况。
问题原因
产生磁盘空间不足问题的原因主要有以下几种情况:
- block空间使用率达到100%。
- inode空间使用率达到100%。
- 已删除文件因句柄未释放导致相应空间未释放。
- block空间使用率达到100%。
使用df -h命令查看磁盘分区的使用情况。
df -h
如图所示说明block空间使用率100%。
解决方法:
1、清除非必要的文件。
2、磁盘进行扩容。
inode空间使用率达到100%
使用df -i命令查看inode使用情况。
如图所示,/dev/vdb1的inode使用率已100%。
解决方法主要有以下几种:
- 清除inode占用高的文件或者目录。
进入inode使用100%的目录。
运行:for i in ./*; do echo $i; find $i | wc -l; done,查找inode占用较高的目录。
逐层进入inode占用最高的目录,继续执行以上命令,定位占用过高空间的文件或目录,然后进行文件或目录的清理 。
- 修改inode【需要提前备份数据】。
卸载磁盘分区或挂载目录:umount /mnt
重新格式化文件系统:mkfs.ext4 /dev/xvdb -N 51376 ,示例中指定51376个inode,请以实际情况为准。
查看修改后的inode节点数。
重新挂载:mount /dev/vdb1 /mnt
- 扩容磁盘
已删除文件因句柄未释放
执行命令: du -sh 查看文件占用空间和磁盘可用空间相差较大,同时磁盘inode使用率较低。
执行以下命令,查看存在问题的目录否存在未被清除句柄的文件。
lsof | grep delete 如果存在进程占用已删除文件的句柄,使用kill -9命令结束进程释放磁盘空间。
kill -9 pid