Tenho os seguintes dispositivos com Linux Mint 18.1 em laptops e GNU / Linux Debian 9 no servidor.
(Todos são de 64 bits e com desktop Cinnamon.)
Todos os dispositivos de drive são formatados com sistema de arquivos ext4 ; RAID 1 é feito utilizando mdadm
.
-
Laptop com 1 SSHD (não deve ser confundido com HDD).
-
Laptop com 3 unidades: 2 x HDDs de consumidor em RAID 1 e 1 x SSD.
-
Servidor com 5 unidades: 4 x HDDs corporativos em duas vezes RAID 1 e 1 x SSD.
Tenho o sistema nesses SSDs e nunca desfragmentaria um SSD.
A pergunta é sobre HHDs e um SSHD.
Encontrei um PDF antigo descrevendo mais alguns recursos para e4defrag
.
-
Por que o sistema de arquivos deve ser montado, de acordo com esta mensagem de erro ao tentar desfragmentar um sistema de arquivos desmontado? Quero entender por que isso acontece:
Filesystem is not mounted
-
Eu gostaria de implementar a desfragmentação do espaço livre. AFAIK está agora em revisão. É possível para mim, por exemplo compilar
e4defrag
do código-fonte com essas opções disponíveis ou de qualquer maneira?e4defrag -f /deviceOrDirectory
-
Eu faria também gosto de usar recursos de dados relevantes:
e4defrag -r /deviceOrDirectory
Tenho muitos motivos relevantes para acreditar que a fragmentação nessas máquinas está ficando mais lenta a velocidade de leitura, exemplo:
-
Retirado do servidor com RAID 1 HDDs:
[2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ]
-
Retirado do laptop com RAID 1 HDDs:
[29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ]
Como você pode ver, a desfragmentação nem mesmo conseguiu colocar o arquivo de 31 blocos em uma única parte. Claro que você pode argumentar que é um arquivo de filme, então não importa. Verdadeiro, mas apenas neste caso.
O comando que uso para iniciar a desfragmentação:
-
No servidor:
sudo e4defrag -v /dev/md1
-
No laptop:
sudo e4defrag -v /raid1/
Sim parece não importar se eu invoco o comando usando o nome do dispositivo ou um diretório.
Você pode me apontar a direção certa?
Comentários
- Você tem resultados de medição que apontam para a desfragmentação como a fonte de acesso lento? Se sim, quais? Na maioria dos casos, você não ‘ precisa fazer a desfragmentação manual em sistemas de arquivos ext4, desde que haja ‘ espaço livre suficiente para que o algoritmo de alocação o desfragmente automaticamente durante a operação normal.
- @dirkt Nenhuma medição foi feita até agora. Eu não ‘ não discuto se é ou não eficaz desfragmentar o sistema de arquivos
ext4
. As perguntas são claras: como fazere4defrag -r
ee4defrag -f
.
Responder
e4defrag
precisa que o sistema de arquivos seja montado porque pede ao driver do sistema de arquivos do kernel para realizar a desfragmentação, ele não faça sozinho.
Quanto à desfragmentação de espaço livre e desfragmentação de arquivo relevante, os patches nunca foram concluídos; a última menção na lista de e-mails relevante data de 2014 :
O
e4defrag
está eme2fsprogs
e o código ainda está sendo mantido e aprimorado. Dmitry Monakhov, em particular, adicionou muitos “testes de tortura” e encontrou uma série de condições de corrida no código do kernel subjacente. Ele recentemente também enviou um refator de código do código do kernel que o melhorou significativamente e (reduziu o tamanho do ext4 em 550 linhas de código).Dito isso, não houve nenhum desenvolvimento de recurso real para
e4defrag
já faz algum tempo. Tem havido alguma discussão sobre o que as APIs do kernel podem ser para oferecer suporte a esse recurso, mas nunca houve uma proposta de API finalizada, muito menos uma implementação.
Portanto, duvido que haja algo que valha a pena testar atualmente.
e4defrag --version
dize4defrag 1.45.5 (07-Jan-2020)
.e4defrag
em A Hora. Ainda é uma parte do Ext4 com suporte total, mas não pode ser usado em todos os casos (sistemas de arquivos com bigalloc não podem ser desfragmentados, o registro de dados é incompatível com desfragmentação e inodes DAX e arquivos criptografados não podem ser movidos).