zoukankan      html  css  js  c++  java
  • Linux中du和df

    Linux运维过程中,常常发现du和df返回值不一样,偶尔会发现区别非常大。

    特定情况下,可能df看到磁盘已满,可是du推断磁盘剩余空间非常大。

    文件系统分配当中的一些磁盘块用来记录它自身的一些数据。如i节点。磁盘分布图,间接块。超级块等。这些数据对大多数用户级的程序来说是不可见的。通常称为Meta Data。

    df:命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。反应系统磁盘实际用量。

    du:用户态程序。

    不考虑MetaData,仅仅统计文件系统的部分情况。

    所以 df >= du

    假设df和du的值相差特别大。说明可能有程序将文件输出指定到了已删除的文件。

    比如:程序执行过程中,删除log文件。则程序会持续向原log所指向的fileHandler继续输出,而不会终止。即使新建重名文件。仍然会按原fileHandler写入到原文件。在df看来。磁盘增长依旧存在。但du看来。文件已经被删除。长期执行之后,则会发生df看到磁盘占用率远高于du。

    此时,能够终止该进程。则已删除的文件fileHandler会被回收。文件被删除。

    假设不知道进程ID,能够用lsof查询

    # lsof | grep delete

    原文链接:Linux中du和df - 零度空间
  • 相关阅读:
    HDU1698(线段树入门题)
    POJ2528(离散化+线段树区间更新)
    POJ3630(Trie树)
    HDU1251(字典树)
    HDU1247(经典字典树)
    POJ2513(字典树+图的连通性判断)
    POJ1363
    UVa11624(逃离火焰问题)
    HDOJ1495(倒水BFS)
    poj3414Pots(倒水BFS)
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7200569.html
Copyright © 2011-2022 走看看