一直在修补 btrfs,考虑从 ext4 迁移到那个。
但是,当想要比较 R/W 速度时,我似乎在 btrfs 磁盘上遇到了一个(至少对我而言)不寻常的行为du
,它显然没有以与我的 ext4 上的文件相同的方式报告文件大小.
(为挪威语言环境道歉。尽管大多数人可能对英语输出足够熟悉以了解发生了什么)
制作测试文件
dd
我在已安装的btrfs磁盘上创建了一个 5GB 的“测试文件”:$ sudo dd if=/dev/urandom of=5G_dd_test_file.tmp bs=1 count=0 seek=5G 0+0 oppføringer inn 0+0 oppføringer ut 0 byte kopiert, 0,00393248 s, 0,0 kB/s
fallocate
以类似的方式,我在同一位置创建了一个测试文件:$ sudo fallocate -l 5G 5G_fallocate_test_file.tmp
ls
确认他们都在那里:$ ls 5G_dd_test_file.tmp 5G_fallocate_test_file.tmp
du
行为怪异..(?)
大小输出du <file>
:
$ sudo du 5G_dd_test_file.tmp
0 5G_dd_test_file.tmp
$ sudo du 5G_fallocate_test_file.tmp
5242880 5G_fallocate_test_file.tmp
注意 dd 生成的文件上的 0 文件大小
相比之下,ls
在stat
相同的文件上:
$ ls -l *.tmp
-rw-r--r-- 1 root root 5368709120 mars 24 18:07 5G_dd_test_file.tmp
-rw-r--r-- 1 root root 5368709120 mars 24 18:12 5G_fallocate_test_file.tmp
$ stat *.tmp
Fil: 5G_dd_test_file.tmp
Størrelse: 5368709120[tab]Blokker: 0 IO Blokk: 4096 vanlig fil
Device: 0,40 Inode: 258 Links: 1
Tilgang: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Tilgang: 2022-03-24 18:07:34.646755042 +0100
Omgjøring: 2022-03-24 18:07:34.646755042 +0100
Endring: 2022-03-24 18:07:34.646755042 +0100
Fødsel: 2022-03-24 18:07:34.646755042 +0100
Fil: 5G_fallocate_test_file.tmp
Størrelse: 5368709120[tab]Blokker: 10485760 IO Blokk: 4096 vanlig fil
Device: 0,40 Inode: 259 Links: 1
Tilgang: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Tilgang: 2022-03-24 18:12:11.768422242 +0100
Omgjøring: 2022-03-24 18:12:11.768422242 +0100
Endring: 2022-03-24 18:12:11.768422242 +0100
Fødsel: 2022-03-24 18:12:11.768422242 +0100
但是,如果我在执行显示为 0大小的相同生成文件时将-b
参数添加到du
(通常不需要) 。然后似乎照常行事。dd
du
$ sudo du -b 5G_dd_test_file.tmp
5368709120 5G_dd_test_file.tmp
du
(?)的另一个奇怪之处
所以只是出于好奇,我决定简单地gzip
从以下文件中获取文件dd
:
$ sudo gzip 5G_dd_test_file.tmp
$ sudo du 5G_dd_test_file.tmp.gz
5092 5G_dd_test_file.tmp.gz
现在它显示一个非零大小..
$ sudo ls -l 5G_dd_test_file.tmp.gz
-rw-r--r-- 1 root root 5210230 mars 24 18:07 5G_dd_test_file.tmp.gz
sudo stat 5G_dd_test_file.tmp.gz
Fil: 5G_dd_test_file.tmp.gz
Størrelse: 5210230 [tab]Blokker: 10184 IO Blokk: 4096 vanlig fil
Device: 0,40 Inode: 260 Links: 1
Tilgang: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Tilgang: 2022-03-24 18:07:34.646755042 +0100
Omgjøring: 2022-03-24 18:07:34.646755042 +0100
Endring: 2022-03-24 18:43:41.061926016 +0100
Fødsel: 2022-03-24 18:42:27.554141544 +0100
问题是
- 这是正常的行为并且实际上是可以预期的吗?
- 如果不是,这可能会破坏依赖
du
回报的脚本或程序吗?