磁盘 100 %

记一次磁盘 100 % 的问题解决。(ps: 可以直接参考:https://scoutapm.com/blog/understanding-disk-inodes

发现

  • tab 自动补全不好用

使用 tab 去自动补全的时候,出现下面的提示:

cannot create temp file for here-document: No space left on device

重点是: No space left on device

  • 上传 jar 包失败

解决

  • df -h 查看磁盘信息(-h 人性化输出)
输入图片说明

/dev/sda2 磁盘使用率 100%

  • find / -size +100M -printf (查找大文件)
输入图片说明
  • ll -h (cd 到,刚刚的大文件目录)
输入图片说明

可以看到 一个日志文件达到了 80G

  • tail -n 50 log.log(查看最后50行)
输入图片说明

发现日期都是历史的(两月前的)

  • ps -ef | grep financial(financial 为 此日志文件的输入来源)
输入图片说明

没找到(这个项目已经早停掉了)

  • rm log.log (确定当前日志文件没有用后,在执行删除,否则先备份)
输入图片说明
  • df -h (再次查看磁盘使用情况,恢复正常)
输入图片说明
  • end

模拟一个实际问题

如果这个文件没有被占用,则使用上述步骤,完美解决。但是,如果一个文件被占用的情况下,会发现 执行 rm 之后,ll 查看文件是消失了,但是 df 查看磁盘并么有恢复正常。
下面来模拟一下。

  • 写一个死循环(python while)
输入图片说明
  • 执行
输入图片说明
  • 多次查看文件大小 (111.log 文件,是在不断增加的)
输入图片说明
  • rm 并 ls 查看,文件消失
输入图片说明
输入图片说明
  • 使用 df 查看磁盘使用率(删除前后对比,发现并没有变化)
删除之前的 log 文件
删除之后的 log 文件
  • lsof | grep deleted
输入图片说明
输入图片说明

当前文件的状态是 deleted ,并没有从磁盘删除,被占用状态。

  • kill 之后,恢复正常 (之前是 25%,删除之后是23%,日志文件大小 2G 多 )
输入图片说明
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容