zoukankan      html  css  js  c++  java
  • 未释放的已删除文件

    未释放的已删除文件

    1、du 和 df 不一致

    如果隐藏文件因素排除了,还是发现 du 出来的大小诡异,比如 du 发现磁盘并没有用满,但是 df 看到磁盘使用率却是 100% 。

    这又会是什么原因呢?

    这时候,通常就得怀疑有一些已删除的文件,还被一些进程 hold 住句柄没释放,导致这些文件虽然已经删除,也的确看不到了,但是却还占着磁盘空间;

    从而导致 du 和 df 出来的磁盘使用结果不一致的情况。

    2、处理建议

    通过执行 lsof | grep deleted 可以找到那些没有释放磁盘空间的文件和进程,

    然后通过重启对应进程,就可以达到释放已删除文件占用的空间的目的。

    这个帖子 《 清空热文件的常见错误操作 》 阐述了 “已删除文件还占用磁盘” 的产生场景和处理方式。

    另外,对于这种情况,还有个错误的处理方法,这里特别提醒下:

    有些同学在找到未释放已删除文件的 pid 之后,可能会直接通过 kill pid 来达到释放已删除文件的目的。

    这种做法确实能够释放已删除文件,从而释放磁盘空间,但是这种做法是有副作用的,危害可大可小。

    如果在离线环境这么操作,影响一般不大;但是如果在生产环境这么操作的话,那就可能搞出故障来了。

    我们假设这么一种场景:

    生产环境的某程序由于某种Bug,一直不会释放日志文件,而分时写入的日志文件又是有过期删除机制的,这样一直持续下去,就会发现服务器上有大量的已过期删除日志文件还占用着磁盘空间,直到产生磁盘满风险。

    那么这个时候如果直接通过 kill pid 来处理的话,就直接把生产环境的在线程序直接干掉了;这个后果就可想而知了:在这个程序被守护进程拉起来之前,这个服务都是不可用的。

  • 相关阅读:
    如何学习区块链
    用Python从零开始创建区块链
    区块链入门
    什么是区块链
    localStorage使用总结
    整理vue学习笔记
    SCSS 教程
    vue — 创建vue项目
    软件开发的常见文档
    史上最全的CSS hack方式一览(转)
  • 原文地址:https://www.cnblogs.com/agang-php/p/14245840.html
Copyright © 2011-2022 走看看