我有一个问题,其中df结果不可靠。 我在sles 11 sp3上使用了xfs文件系统。
基本上,在清除磁盘caching之前和之后的空闲空间之间有很大的区别(几GB)。 任何人都知道为什么磁盘caching使用额外的存储。
例如:
VideoEdge:/ # df Filesystem 1K-blocks Used Available Use% Mounted on ... /dev/sdb2 870942208 824794856 46147352 95% /mediadb /dev/sdc1 975746564 924536548 51210016 95% /mediadb1 /dev/sdd1 975746564 153177500 822569064 16% /mediadb2 VideoEdge:/ # echo 3 > /proc/sys/vm/drop_caches VideoEdge:/ # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb2 870942208 822225756 48716452 95% /mediadb /dev/sdc1 975746564 923374888 52371676 95% /mediadb1 /dev/sdd1 975746564 148323524 827423040 16% /mediadb2 VideoEdge:/ # df
从上面看,清除磁盘空间后有更多的可用空间。
我们使用df来估计可以使用多less空间,并在df表示stporage已满95%时尝试删除旧数据。 由于磁盘caching占用不可预知的存储空间,所以会造成问题。
任何人都知道为什么磁盘caching会临时占用存储空间? 有没有办法计算磁盘caching占用了多less或磁盘caching可能占用的最大?
我们不想清除可能经常性能不佳的磁盘caching。
VideoEdge:/ # df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 8259484 5592116 2247724 72% / udev 2021220 228 2020992 1% /dev tmpfs 2021220 144 2021076 1% /dev/shm /dev/sda1 8259484 5592116 2247724 72% / /dev/sda3 463282160 75389072 387893088 17% /var /dev/sdb1 104804356 32928 104771428 1% /var/opt/americandynamics/venvr/clipexport /dev/sdb2 870942208 821370196 49572012 95% /mediadb /dev/sdc1 975746564 923423496 52323068 95% /mediadb1 /dev/sdd1 975746564 148299180 827447384 16% /mediadb2 /dev/sdb2 on /mediadb type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota) /dev/sdc1 on /mediadb1 type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota) /dev/sdd1 on /mediadb2 type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)
请参见:
为什么我的XFS文件系统突然消耗更多的空间和稀疏文件?
这是XFSdynamic预分配function的结果。 这些基本上是文件缓冲区,合并写入,以防止文件碎片。 有几个解决方法。
du --apparent-size可以是有帮助的。 在这两种情况下,您的文件系统都处于危险级别(95%以上)。 less量的缓冲空间是不相关的,因为你应该远低于80%的利用率。 您也可以使用df结果,因为这是在任何时候真正使用的。