V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
2NUT
V2EX  ›  Linux

请教个 du df ls 磁盘满的问题

  •  
  •   2NUT · 2022-11-24 17:46:25 +08:00 · 1920 次点击
    这是一个创建于 755 天前的主题,其中的信息可能已经有所发展或是发生改变。

    考察家目录, 可能存在大量稀疏文件:

    • df 看是 占用 100% 占用 216509100 KB

      Filesystem     1K-blocks    Used         Available   Use%   Mounted on
      /dev/sda3      228169132    216509100    0           100%  /home
      
    • du -s . 看 结果为 216447608 KB

    • find . | xargs ls -l | awk '{s+=$5}END{print s/1024}' 看大概 4.32343+e8 Byte

    • find . -type f | xargs ls -s | awk '{s+=$5}END{print s/1024}' 看结果为 216167656 KB

    • find . -type f | xargs du -c 看结果为 7893728 KB

    • find . -type f | xargs du -c --apparent-size 看结果为 1592288 KB

    哪哪都不一样, 非常费解, 请教大家

    第 1 条附言  ·  2022-11-24 22:44:30 +08:00
    find . | xargs ls -l | awk '{s+=$5}END{print s/1024}' 看大概 **4.32343+e8 Byte**
    

    写错了, ls -l 对 目录 和 文件的输出格式不同, awk 统计错了;

    更正为

    • find * -type f | xargs ls -l | awk '{s+=$5}END{print s/1024} 结果为 2.16031+e8 B

    或者:

    • find * -type d | xargs ls -l | grep total |awk '{s+=$2}END{print s}' 结果为 216447484 KB
    11 条回复    2022-12-09 17:34:26 +08:00
    xyjincan
        1
    xyjincan  
       2022-11-24 20:40:51 +08:00 via Android
    有问题重启一下,没问题删点东西
    ho121
        2
    ho121  
       2022-11-24 20:53:53 +08:00 via Android
    ls -als
    第一列,就是实际占用大小
    zhoudaiyu
        3
    zhoudaiyu  
       2022-11-24 21:21:35 +08:00
    lsof -a +L1 挂载点
    看一下是不是又被删了但是程序还在往里面写的文件
    2NUT
        4
    2NUT  
    OP
       2022-11-24 22:23:20 +08:00
    @zhoudaiyu 没有任何输出
    2NUT
        5
    2NUT  
    OP
       2022-11-24 22:24:41 +08:00
    @ho121 第一列其实就是 上面 ls -s 显示的, 我通过 find 所有文件 再加和统计过了 是 216GB 确实是满了

    不理解的就是 du -c 统计的 只有 7.8 GB, 似乎是稀疏文件, 但文件系统 被稀疏文件塞满了?
    2NUT
        6
    2NUT  
    OP
       2022-11-24 22:50:57 +08:00
    更正

    find * -type f | xargs du -c --apparent-size 结果为 6260885 KB

    find * -type f | xargs du -c 结果为 6246052 KB

    也就是说 其实现在的 区别就是 ls -l 和 du -c 统计结果不通 这一个矛盾, 考虑到 稀疏文件的影响, 确实 du 实际文件占用大小就是 6.x GB, 而文件的 表观大小 是 216 GB;

    ext4 文件系统处理 稀疏文件的行为是如何的?
    edis0n0
        7
    edis0n0  
       2022-11-24 23:05:16 +08:00   ❤️ 1
    重启 nginx 试试,nginx 上传没落盘就是稀疏文件,我们几次出现这问题都是上传接口被刷了
    julyclyde
        8
    julyclyde  
       2022-11-25 08:46:54 +08:00   ❤️ 1
    @edis0n0 nginx 还支持上传稀疏文件??
    咱们对稀疏文件的理解是不是不同啊?
    edis0n0
        9
    edis0n0  
       2022-11-25 13:47:36 +08:00   ❤️ 1
    @julyclyde nginx 往 client_body_temp_path 写的都是统计不到的稀疏文件,之前我们遇到这问题也排查了半天
    julyclyde
        10
    julyclyde  
       2022-11-25 14:07:09 +08:00
    @edis0n0 核实一下
    是 sparse
    还是“打开之后删除”的文件?
    JohnBull
        11
    JohnBull  
       2022-12-09 17:34:26 +08:00
    @julyclyde 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3267 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.