Como posso saber se um diretório tem o APFS Fast Directory Sizing ativado?

10

A documentação técnica da Apple no Apple File System Guide descreve que alguns diretórios como /tmpnão são bons candidatos ao recurso de dimensionamento rápido de diretórios.

O dimensionamento rápido de diretório funciona pré-computando o tamanho do diretório à medida que o conteúdo é adicionado e removido. Portanto, é mais apropriado para diretórios que contêm muitos arquivos e têm pouca rotatividade. Por exemplo, a pasta Documentos de um usuário é um bom candidato para o dimensionamento rápido do diretório, enquanto o /tmpdiretório não.

Como posso saber se um determinado diretório está habilitado ou desabilitado para que eu possa escolher onde executar um trabalho de "agitação" intensivo em velocidade e onde não fazer esse tipo de trabalho?

bmike
fonte

Respostas:

1

Agora sabemos que a resposta anterior está um pouco errada, pois a Apple lançou recentemente mais detalhes técnicos sobre o APFS. O dimensionamento rápido de diretório é realmente ativado por diretório e isso pode ser verificado pelo usuário (embora não seja fácil). Ele só pode ser ativado quando um diretório está vazio e também deve ser ativado para cada novo subdiretório. Detalhes: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Citação relevante

Você não pode ativar o dimensionamento rápido de diretório em diretórios que contêm arquivos ou outros diretórios diretamente; em vez disso, você deve primeiro criar um novo diretório, ativar o dimensionamento rápido do diretório e, em seguida, mover o conteúdo do diretório existente para o novo diretório

Agora sabemos que você deve definir esse sinalizador para ativar o FDS

INODE_MAINTAIN_DIR_STATS: O inode rastreia o tamanho de todos os seus filhos

Embora ainda não esteja claro se o macOS está ativando esse sinalizador automaticamente quando apropriado ou não, mas algumas experiências iniciais me fazem pensar que ainda não está sendo usado. Presumo que ele será usado nas próximas atualizações do macOS.

Chris
fonte
0

Resposta curta

O FDS é uma parte fundamental do sistema de arquivos em unidades formatadas em APFS. Não é algo que os usuários precisam ativar / desativar, e não é algo que pode ser aplicado a um diretório e não a outro.

Como é um cenário 'all in', não há comandos de terminal para determinar se um diretório tem o FDS ativado. Em vez disso, se uma unidade estiver formatada no formato APFS, o FDS será ativado. Se não estiver formatado no formato APFS, o FDS não estará disponível.

Resposta longa

Infelizmente, as informações que você citou na documentação técnica da Apple estão mal formuladas, daí o motivo da sua pergunta.

Se uma unidade estiver formatada no formato APFS, o dimensionamento rápido do diretório será aplicado em todos os sentidos. O FDS não é algo que um usuário possa ativar / desativar por diretório.

Por esse motivo, também não é algo que um usuário possa determinar o status de um diretório por diretório. Ou seja, se a unidade estiver formatada como APFS, todos os diretórios terão o FDS ativado .

De onde vem a confusão (e, de maneira compreensível, neste caso) é a má escolha de palavras na documentação da Apple e a ambiguidade criada. O que essas informações estavam tentando transmitir é que um usuário se beneficiará mais do FDS naqueles diretórios que possuem muitos arquivos, mas muda pouco (por exemplo, a pasta Documentos do usuário), enquanto eles não se beneficiarão muito (se houver) do FDS nos diretórios como a /tmppasta

Como um aparte, a documentação que você referenciou foi substituída pela página Sobre o Apple File System . A única menção ao FDS nesta página é a seguinte:

O Apple File System oferece fundamentos aprimorados do sistema de arquivos, além de vários novos recursos, incluindo clonagem, snapshots, compartilhamento de espaço, dimensionamento rápido de diretório, economia atômica de segurança e arquivos esparsos.

Não há nenhuma tentativa de explicar melhor o que significa FDS, além do fato de ser um recurso fundamental (leia subjacente ). No entanto, se você estiver interessado em algum plano de fundo:

Em estruturas de diretório complexas e profundas no HFS +, estamos familiarizados com o tempo que o sistema de arquivos pode gastar no cálculo do tamanho da árvore do sistema de arquivos. Esse é um dos motivos mais comuns de travamento do sistema. A Apple, com APFS, introduziu o Fast Directory Sizing (FDS), onde o sistema de arquivos pode calcular rapidamente o espaço usado por uma hierarquia de diretórios, a fim de remover esse problema.

Fonte: Hansen, KH, Toolan, F., Decodificando o sistema de arquivos APFS, Digital Investigation (2017)

Monomeeth
fonte
É verdade que, se uma unidade é formatada como APFS, todos os diretórios têm o FDS ativado? Este comentário sugere que ele é definido por nó e que você deve primeiro criar um diretório e depois mover itens para ele. Certamente, no meu próprio sistema, os tamanhos das pastas não parecem ser exibidos muito rapidamente no Finder (este era um sistema atualizado; não uma instalação limpa).
Wincent
Infelizmente, isso está errado e deve ser atualizado. Consulte a documentação j_inode_flagsna Referência do sistema de arquivos da Apple . A estrutura de dados do inode do diretório realmente permite que esse recurso seja ativado ou desativado em uma instância por diretório. Nada lá afirma que esse recurso é ativado para todos os diretórios automaticamente, conforme declarado nesta resposta.
Feuermurmel 17/01
Esse comentário é repetitivo, um tanto condescendente e totalmente errado. As citações na pergunta não são "mal formuladas"; eles são obviamente incompatíveis com esta resposta.
Matthias Winkelmann