
考察家目录, 可能存在大量稀疏文件:
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
哪哪都不一样, 非常费解, 请教大家
find . | xargs ls -l | awk '{s+=$5}END{print s/1024}' 看大概 **4.32343+e8 Byte** 写错了, ls -l 对 目录 和 文件的输出格式不同, awk 统计错了;
更正为
或者:
1 xyjincan 2022-11-24 20:40:51 +08:00 via Android 有问题重启一下,没问题删点东西 |
2 ho121 2022-11-24 20:53:53 +08:00 via Android ls -als 第一列,就是实际占用大小 |
3 zhoudaiyu PRO lsof -a +L1 挂载点 看一下是不是又被删了但是程序还在往里面写的文件 |
5 2NUT OP @ho121 第一列其实就是 上面 ls -s 显示的, 我通过 find 所有文件 再加和统计过了 是 216GB 确实是满了 不理解的就是 du -c 统计的 只有 7.8 GB, 似乎是稀疏文件, 但文件系统 被稀疏文件塞满了? |
![]() | 6 2NUT OP 更正 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 文件系统处理 稀疏文件的行为是如何的? |
7 edis0n0 2022-11-24 23:05:16 +08:00 重启 nginx 试试,nginx 上传没落盘就是稀疏文件,我们几次出现这问题都是上传接口被刷了 |