A primeira coisa que recomendaria é verificar se quotas estão desativadas:
$ sudo btrfs qg sh /
Se você não precisa de quotas e ela está ativada, desative, dependendo da distro, pode vir ativado:
$ sudo btrfs qu di /
Quanto as flags para partição raiz, eu recomendaria usar: noatime,flushoncommit,autodefrag,compress-force=zstd:2.
Se você depende de alguma aplicação que precisa saber horário e data de acesso a arquivos, não deve usar noatime, mas é uma boa opção, outra coisa é a compressão (compress-force=zstd:2), fica a seu critério se quer usar, ou se quer este nível, menor ou maior de compressão, acho que o nível 2 tem um bom compromisso entre performance e compactação para um SSD.
Se você quer ir mais fundo pode desativar COW em alguns diretórios/arquivos, como por exemplo o cache dos navegadores, você não vai sentir drasticamente impacto na performance se não fizer, mas pode ajudar. Seguir as indicações e organização que o SUSE segue é uma boa idéia também.
Arquivos de VM é bem aconselhável que você desative o COW mas mesmo assim faça um snapshot volta e meia, o melhor é automatizar com algum serviço como snapper ou btrbk.
force-compress passa por cima do algoritmo de verificação de compressibilidade dos blocos, não sei se ainda hoje o algoritmo é lento, talvez não, mas antigamente esse processo de verificação era bem lento (eram algoritmos do kernel mas de baixa performance) e valia mais a pena comprimir tudo. De qualquer forma com ZSTD, principalmente no nível 1 e 2 a performance de leitura e escrita já é muito boa e praticamente não adiciona overhead. Só indicaria o nível 1 para NVMe.
autodefrag realiza a desfragmentação do sistema de arquivos de forma “pró-ativa”, re-ordenando e unindo múltiplas pequenas operações de escrita randomica e ocasionalmente copiando blocos adjacentes para garantir contiguidade. Não opera sobre grandes extensões de dados e vai ocorrendo a medida que vão ocorrendo operações de escrita.
O impacto em termos de reescrita em SSDs é menor que a desfragmentação sob demanda, mesmo tendo algum impacto, vale a pena tentar evitar fragmentação excessiva em BTRFS, principalmente com bancos de dados pequenos que são modificados frequentemente (browser), máquinas virtuais ou se você planeja manter um histórico razoável de snapshots. Não só devido a intensificação da fragmentação em FS COW nestes casos mas também pelo fato de que múltiplos pequenos IOPS em arquivos grandes (VMs) no BTRFS podem sobrecarregar a árvore de metadados.
As configurações do BTRFS eu coloco quando for instalar o sistema ou só adicionar no fstab depois de instalado? Exemplo o compress=ztsd:15, só adicionar no fstab ele já faz a compressão na hora de iniciar o sistema.
sim e não! quando vc coloca no fstab, só os novos arquivos vao ser compressos nesse nivel! para que os antigos tenho essa compressão vc precisa desfragmentar aplicando a compressão!
Eu recomendo fazer isso apenas na hora da formatação, para comprimir os arquivos gerados durante a instalação pois tanto a boot flag de compressão atributo de arquivos não modificam o estado de um arquivo já gravado.
Vai ser a única vez que você vai precisar, e a única em que realmente é uma boa ideia fazer, posteriormente você pode arranjar um grande problema já que desfragmentar desfaz links referencias duplicando dados de snapshots previamente deduplicados.
De resto a questão envolvendo SSDs e desfragmentar, não é que seja ruim, a verdade é que qualquer coisa que gaste a vida útil do HD sem um motivo é ruim, logo se você desfragmenta sem saber porque e no fim isso não ajuda em nada (desempenho, compressão, etc), você está queimando ciclos de escrita a toa. Logo o mesmo deveria ser dito sobre ficar formatando para trocar de distro por tédio.
Minha opinião ainda continua sobre ter conhecimento, mas hoje vejo que isso tem que vir da configuração o OS por padrão, como acontece no Fedora, que aos poucos dev’s e comunidade implementam funções ao Btrfs da melhor forma que consideram.
Hoje já temos compressão e um setup que parece cair bem em ssd e hd lento (pelo menos em meus testes). Ainda que em ssd sempre será tudo melhor…
Estão estudando como implementar o uso das snapshots com Btrfs para próximas versões…
Tudo bem. O q eu falei em outro post q percebi foi q parece q algumas distros “configuram” o btrfs de forma diferente. Tanto q a maioria dos problemas q vi o pessoal citar aqui nunca nem vi e olha q uso btrfs (No Ubuntu) faz duzentos anos kkk.