首页 > 解决方案 > 文件大于其所在分区的大小

问题描述

我有一台服务器,其中分区内有一个 30GB 的文件/,尽管df -h将此分区列为使用 11GB。为什么会这样?

[root@APPSERVER21-S1 ~]# ls -l /etc/vinter/logs/
total 2046032
-rw-r--r-- 1 root root     3920496 Sep 11 14:35 PlusoftCRMIntegration-APISILVERNODE-1.log
-rw-r--r-- 1 root root 30823671719 Sep 11 15:13 rsp.appserver21-s1.apigoldnode-1.api-oi-gold.log
-rw-r--r-- 1 root root   406061056 Sep 11 15:13 rsp.appserver21-s1.apisilvernode-1.api-oi-silver.log
[root@APPSERVER21-S1 ~]# df -h
Filesystem                      Size  Used Avail Use% Mounted on
devtmpfs                        3.6G     0  3.6G   0% /dev
tmpfs                           3.6G     0  3.6G   0% /dev/shm
tmpfs                           3.6G  137M  3.4G   4% /run
tmpfs                           3.6G     0  3.6G   0% /sys/fs/cgroup
/dev/mapper/vg_main-lv_root      16G  5.0G   11G  32% /
/dev/mapper/vg_dados-lv_dados    20G   33M   20G   1% /datastorage
/dev/mapper/vg_dados-lv_docker   80G  128M   79G   1% /var/lib/docker
/dev/xvdb1                      497M  161M  337M  33% /boot
tmpfs                           722M     0  722M   0% /run/user/0

标签: partition

解决方案


我有一台服务器,其中分区内有一个 30GB 的文件/,尽管df -h将此分区列为使用 11GB。

实际上,它将此文件系统列为使用 5 GB,而不是 11 GB。

为什么会这样?

如果不知道该文件的内容是什么、文件系统是什么、文件是如何创建的等等,这是不可能回答的。

有执行重复数据删除的文件系统。如果有相同内容的块,则将它们替换为链接,这样它们就只占用一个块的空间。因此,如果文件系统上存在大量重复数据,则文件在磁盘上占用的空间很可能比其重复内容少得多。

有执行压缩的文件系统。如果文件系统上有很多冗余,那么压缩会显着减少数据,并且很可能文件占用的磁盘空间比未压缩的内容要少得多。

许多文件系统支持稀疏文件。稀疏文件是其中带有“漏洞”的文件。这些漏洞将被读取为一长串二进制零,并且在技术上是文件内容的一部分,但它们不存储在磁盘上。


推荐阅读