Portál AbcLinuxu, 4. května 2025 18:32
Mnoho lidí žehrá na statické alokování inodů v systému souborů ext3. Tvrdí, že inodů je buď málo a dojdou, nebo mnoho a zabírají místo. Pojďme to změřit.
Pro toto měření jsem vyhradil 40GB (LV) oddíl na disku. V dalším textu budu používat předpony jednotek: k=1024B, M=1048576B, G=1073741824B, nechce se mi psat MiB apod.
Standardní nastavení e2fsprogs v CentOS 5.2. Dle wiki je maximální velikost souboru 2TB a FS 8TB.
mkfs.ext3 -m 0 ...
1k blocks | used | available |
---|---|---|
41284928 | 180240 | 41104688 |
Inodes | Iused | Ifree |
5242880 | 11 | 5242869 |
Nastavení poskytující nejvíce volných inod (=souborů). Trochu déle se vytváří a kontroluje, což může být někdy nevýhoda. Podle vývojářů však vysoký počet bloků FS nevadí a nesnižuje jeho výkon. Podle wikipedie má takové nastavení limit 16GB/soubor 2TB/FS.
mkfs.ext3 -m 0 -i 1024 -b 1024 ...
1k blocks | used | available |
---|---|---|
36687021 | 37520 | 36649501 |
Inodes | Iused | Ifree |
41943040 | 11 | 41943029 |
Nastavení pro velké soubory (>1MB), vytváří se rychle.
mkfs.ext3 -m 0 -T largefile ...
1k blocks | used | available |
---|---|---|
41935168 | 180240 | 41754928 |
Inodes | Iused | Ifree |
40960 | 11 | 40949 |
Nastavení pro obrovské soubory (>4MB), vytváří se bleskurychle.
mkfs.ext3 -m 0 -T largefile4 ...
1k blocks | used | available |
---|---|---|
41939008 | 180240 | 41758768 |
Inodes | Iused | Ifree |
10240 | 11 | 10229 |
Procento volného místa v následující tabulce jsem vztahoval k defaultnímu nastavení mkfs.ext3. Je patrné, že snížením počtu inodů mnoho místa nezískáme, naopak přijdeme o možnost zápisu dalších souborů (místo ztracené neúplnými bloky je stejné jako u defaultu). Naopak v případě extrémního počtu inodů přijdeme o přibližně 10% místa, slack-space se naopak sníží na minimum (toto měření není součástí tohoto testu).
kB/nodes | Volné místo kB (GB) | % |
---|---|---|
4 | 41104688 (39.20) | 100.0 |
1 | 36649501 (34.95) | 89.2 |
1024 | 41754928 (39.82) | 101.6 |
4096 | 41758768 (39.82) | 101.6 |
Tiskni
Sdílej:
Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/mapper/VGraid-test reiserfs 41941756 32840 41908916 1% /mnt/t reiser: 41908916 ext3: 41104688101.956% Takže trochu lepší než largefile4, pochopitelně s možností umístění více souborů.
mkfs.ext3 -m 0 -L test -i 1024 -b 1024 -E test_fs /dev/VGtest/testTeď pozor: Available=31406621 1k blocks Tj o 10GB (25%) méně !!! Tak jsem snížil počet inod a zkusil, zda náhodou nevytváří inody dynamicky:
for i in $(seq -w 1 10240); do echo "ahoj" > $i.txt; done -bash: 10229.txt: No space left on deviceTakže nikoliv
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.