xfs o uso do disco é 15-30% maior que os arquivos

6

xfs parece usar 15-30% mais espaço em disco do que os arquivos requerem:

# du
0       .
# dd if=/dev/zero of=test bs=1M count=5k
5120+0 records in
5120+0 records out
5368709120 bytes (5,4 GB) copied, 10,527 s, 510 MB/s
# ls -l
total 8388608
-rw-r--r-- 1 root root 5368709120 Oct 19 16:04 test
# du
8388608 .

Parece fazer isso até certo ponto para todo o sistema de arquivos. Esse sistema de arquivos relata o disco cheio ao adicionar arquivos com menos de 1% do tamanho do sistema de arquivos:

# df
/dev/sdb6  40957913088 35624042728 5333870360  87% /xfs-export

Isso é causado por alguma opção sofisticada ao fazer mkxfs (semelhante aos 5% reservados no ext2)?

# uname -a
Linux server 2.6.39-bpo.2-amd64 #1 SMP Tue Jul 26 10:35:23 UTC 2011 x86_64 GNU/Linux
    
por Ole Tange 19.10.2011 / 16:12

3 respostas

1

Já faz muito tempo desde que eu pude reproduzir esse problema. Eu acho que entendi agora:

$ ls -l
total 0
$ dd if=/dev/md0 >> a bs=10000k &
$ ls -l
total 9111552
-rw-r--r-- 1 rt rt 5816320000 Jan  7 23:31 a

Ele permanece assim até dd terminar (ou ser eliminado) - mesmo se dd for suspenso. Depois disso, as coisas parecem normais:

$ kill %1; ls -l
total 20120000
-rw-r--r-- 1 rt rt 20602880000 Jan  7 23:33 a

Portanto, simplesmente parece que xfs está reservando espaço para o arquivo expandir.

O dd da questão é concluído, mas pode haver alguns outros arquivos abertos que possam justificar a reserva.

    
por 07.01.2013 / 23:43
1

Suspeito strongmente que você esteja vendo números tão estranhos, porque você tem a variável ambiental BLOCKSIZE definida como 640. BLOCKSIZE afeta o que ls, du e df imprimem. Defina BLOCKSIZE como "1024" ou "1k" e você deverá ver a saída esperada.

    
por 25.01.2012 / 07:24
0

O XFS tem um recurso chamado Preallocation de EOF especulativo dinâmico. Ele poderia alocar mais espaço na expectativa de mais bytes serem gravados para reduzir a fragmentação de arquivos. ( link )

    
por 25.07.2017 / 21:48