专业的编程技术博客社区

网站首页 > 博客文章 正文

从no space left on device问题说说du和df命令

baijin 2024-08-24 22:25:54 博客文章 8 ℃ 0 评论

创建文件时有没有遇见过这个报错“no space left on device”?

见到这个报错提示会以为磁盘空间满了,但造成”磁盘满“的原因却有多种可能。

1.文件超大了

通过df -lh命令 查看剩余空间,如果可用空间不足以写文件了,当然是"no space left on device"。

df -lh 命令查看空间情况

2.大量打开的文件被”删除“导致的

每个文件都分配有一个inode节点,当文件正常删除时,inode节点会回收。当文件处于打开状态时被删除,这时inode节点不会回收,每个文件占用的空间也不被回收(会统计到df -lh命令的已用空间)。表现为”删除掉的文件“占用了大量空间,已用空间超过正常预期,直至让你创建文件失败。

通过lsof|grep deleted命令 查看是否有这种情况发生

3.小文件过多引起inode用尽

每个挂载点的inode数量在创建文件分区时已固定,又每个文件会对应到一个inode节点上。

因此,若小文件太多,inode节点被用尽,就会出现无法再创建新文件,磁盘空间无法充分利用的情况。

df -li 命令查看inode信息


两个相关命令:

du -sh 命令 查看当前目录大小,简明输出

du -lh --max-depth=1命令 查看当前目录的一级子目录大小,详细输出

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表