Impactação do cache de disco no resultado do linux df

1

Estou tendo um problema no qual o resultado do df não é confiável. Estou usando o sistema de arquivos xfs em sples 11 sp3.
Basicamente, há uma grande diferença (alguns GBs) entre o tamanho livre antes e depois de limpar o cache de disco. Alguém sabe por que o diskcache usando armazenamento extra.
Por exemplo:

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

Vendo acima, há mais espaço disponível depois de limpar o espaço em disco.

Usamos o df para estimar quanto espaço pode ser usado e tentar remover dados antigos quando o df diz que o stporage está 95% cheio. Como o cache de disco ocupa um espaço de armazenamento imprevisível, está causando problemas.

Alguém sabe por que o cache de disco consumiria o armazenamento temporariamente? Existe uma maneira de calcular quanto é gasto pelo cache de disco ou o máximo que pode ser obtido pelo cache de disco?

Não queremos limpar o cache de disco, o que pode afetar a performace de tempos em tempos.

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)
    
por Song 24.08.2015 / 12:49

1 resposta

4

Por favor, veja:

Por que meus sistemas de arquivos XFS estão subitamente consumindo mais espaço e arquivos esparsos?

Esse é um resultado dos recursos de pré-alocação dinâmica do XFS. Estes são basicamente buffers de arquivos que coalescem gravações para impedir a fragmentação de arquivos. Existem algumas soluções alternativas.

  • du --apparent-size pode ser útil.
  • Monte as opções para o sistema de arquivos XFS, conforme detalhado no pergunta vinculada .

Em ambos os casos, seu sistema de arquivos está em um nível perigosamente cheio (95% +). A pequena quantidade de espaço de buffer é irrelevante, considerando que você deve estar bem abaixo de 80% de utilização. Você também pode usar os resultados df , porque isso é o que realmente está sendo usado a qualquer momento.

    
por 24.08.2015 / 13:11