-
我的服务器突然报磁盘空间不足、写不了任何文件,可我 df 一看磁盘明明还有一大半空闲,百思不得其解,排查半天才发现真正被耗尽的不是磁盘空间、而是一个我从来没关注过的东西——inode 的深度复盘
我有台服务器某天服务集体报错 No space left on device——写日志失败、创建临时文件失败、连 touch 一个新文件都失败,字面意思再清楚不过:磁盘满了。我赶紧 df -h 想清理,却懵了:磁盘空间明明还剩一大半、使用率才 40% 多,哪里满了?可系统就铁了心说没有剩余空间,任何创建新文件都失败。我一度怀疑磁盘坏了、文件系统损坏、权限问题,折腾好久没头绪。直到老同事提醒我 df…- 0
- 0
-
rm 删了文件 df 空间却没释放:一次硬链接与 inode 引用计数的复盘
服务器根分区快满了,我 rm 掉一个确认没用的 5GB 大文件 bigdata.bin,df 一刷新磁盘 Used 纹丝不动一个字节都没释放,ls 确认文件确实没了,du 也显示 /data 目录少了 5GB,可整个磁盘的 df 就是不动,文件既被删了又没被释放。排查梳理:删之前 ls -l 看那个文件第二列的链接数发现是 2 不是 1,stat 显示 Links 2,find / -inum 用…- 0
- 0
-
磁盘还有空间却报 No space left on device:一次 inode 耗尽的复盘
一个写大量小文件的消息服务疯狂刷 No space left on device 新文件写不进,df -h 一看根分区只用了 58% 还剩 42G 空着,空间明明有为什么报没空间。排查梳理:lsof grep deleted 排除了已删文件句柄占空间,df -i 一看 inode 用满了 IUse 100%,那个目录里 580 万个几 KB 的小临时文件正好把 inode 总数耗尽;一个文件系统有…- 0
- 0
-
磁盘还剩四成却报 No space left:一次 Linux inode 耗尽排查复盘
一个后台服务往磁盘写文件突然失败,报 No space left on device。SSH 上去 df -h 一看那块盘只用了 58%,清清楚楚还剩几十 G。手动 touch 一个 0 字节空文件也报同样的错——一个明明还剩四成空间的磁盘,连一个不占空间的空文件都创建不了。排查梳理:一块磁盘其实有两种独立的容量,空间 block 装多少字节和 inode 装多少个文件,会各自单独耗尽;报 No …- 4
- 0
-
df 说磁盘满了 du 却找不到文件:一次 Linux 已删除文件占用空间排查复盘
一台服务器根分区报警 100%,df 说用了 50G,可用 du 把整个分区从上到下扫一遍加起来只有 25G,有一半空间凭空消失。排查梳理:df 和 du 数的不是同一个东西,df 看文件系统磁盘块占用、du 顺着目录树按文件名加总,du 必须能通过文件名找到文件才能算进去;rm 删的是目录里那个指向文件的名字不是文件本身,真名其实是 unlink 取消链接,内核释放文件空间要同时满足指向它的名字…- 5
- 0
-
磁盘报满 du 和 df 却差了 60G:一次 Linux 幽灵文件排查复盘
一台服务器根分区告警用了 96%,可 du 把所有目录加起来只有 33G,df 却说用了 96G,差了 60 多 G 怎么数都对不上。排查梳理:rm 删的是目录里指向数据的文件名而不是文件数据本身,文件数据要等到没有任何名字指向它且没有任何进程打开它两个条件同时满足才被回收;du 顺着目录树按文件名累加,被删掉名字的文件 du 数不到所以偏小,df 数的是文件系统实际占用的块所以偏大,df 明显大…- 2
- 0
-
磁盘还有空间却报 No space left:一次 Linux inode 耗尽排查复盘
一个会产生海量小文件的服务突然写不进文件,日志反复报 No space left on device,可 df -h 一看根分区只用了 41%,空着将近 60G,连 touch 一个 0 字节空文件都失败。排查梳理:一个文件系统装文件靠两种独立资源,数据块存内容 df -h 看它,inode 存每个文件的元信息 df -i 看它;每创建一个文件不管多大都吃掉一个 inode,inode 总数在格式…- 0
- 0
-
文件删了磁盘空间却没释放:一次 Linux inode 与文件删除机制排查复盘
磁盘 df 显示 100% 满,找到 30G 大日志 rm 掉,df 却纹丝不动还是 100%。排查梳理:df 与 du 看的根本不是一个东西、rm 删的是文件名不是数据、inode 要硬链接数和打开计数双双归零才回收、lsof 揪出已删除却被进程占用的幽灵文件、inode 耗尽是另一种磁盘满、硬链接与软链接的本质区别,以及一套磁盘空间排查纪律。- 0
- 0
-
用 ln 做的"备份"凭空蒸发了:一次 Linux 软硬链接排查复盘
用 ln 给日志做的"备份",原文件被 logrotate 清空后也跟着归零。排查梳理:inode 与文件名的关系、硬链接为何是同一份数据的另一个名字、软链接为何只是一段路径、两者差异一表理清、链接的排查与死链清理,以及为什么链接永远不是备份。- 0
- 0
inode
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!









