Fórum Ubuntu Linux - PT

Área para Iniciantes => Dicas e Truques => Tópico iniciado por: galactus em 08 de Maio de 2017, 20:04

Título: Desfragmentando o ext4!
Enviado por: galactus em 08 de Maio de 2017, 20:04
Olá amigos da rede Ubuntu!   Vamos aprender hoje a verificar à fragmentação do seu sistema de arquivos ext4 e se necessário, desfragmentá-lo.

Alguns de vocês devem estar querendo me perguntar:  "Mas galactus, o ext4 se fragmenta?  Eu tinha ouvido falar que não se fragmentava ou que teria uma fragmentação mínima!"

Isso é verdade em parte, o ext4 tem vários mecanismos para diminuir a fragmentação do seu sistema de arquivos, mas sim, ele pode ficar fragmentado.

Vamos usar o comando e4defrag. Para nossa alegria e satisfação ele pode ser executado com o sistema de arquivos montado, ou seja, com seu sistema "on line"!

Para os interessados em todos os detalhes da sintaxe do comando é só mandar um "man e4defrag" no terminal para ver tudo nos seus mínimos detalhes.

Se tiver ainda mais vontade de se aprofundar no assunto, não deixe de ler a palestra do criador do e4defrag, o japonês Akira Fujita: http://events.linuxfoundation.org/slides/2010/linuxcon_japan/linuxcon_jp2010_fujita.pdf

Sim é seguro usar o e4defrag, ele já está disponível desde 2009, mas ninguém fala disso pois a fama do ext4 é de não se fragmentar!

Sendo assim vamos deixar dos entretantos e partir logo para os finalmentes.

No terminal, como usuário root, verifique o nível de fragmentação de sua partição:

Citar
e4defrag -c /

Note bem, ele vai verificar a partição raiz e não o disco.  O comando funciona nas partições. Assim se você tiver também uma partição /home  formatada em ext4 use:

Citar
e4defrag -c /home

E assim por diante em todas as partições formatadas em ext4.

Assim o comando e4defrag -c  vai verificar a fragmentação do sistema de arquivos e te dar um relatório sobre isso, mas não vai desfragmentar nada ainda!

Como exemplo vou mostrar o resultado da minha partição raiz do notebook:

Citar
root@galactus-note:/home/galactus# e4defrag -c /
<Fragmented files>                             now/best       size/ext
1. /var/lib/smartmontools/attrlog.ST1000LM024_HN_M101MBB-S32SJ5CF123786.ata.csv
                                                16/1              4 KB
2. /var/log/wtmp.1                              14/1              4 KB
3. /var/log/auth.log                            17/1              4 KB
4. /var/log/auth.log.1                          17/1              5 KB
5. /var/log/preload.log                          3/1              4 KB

 Total/best extents            286411/286186
 Average size per extent         36 KB
 Fragmentation score            0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (/) does not need defragmentation.
 Done.

Você deve se preocupar com o resultado da linha:  Fragmentation score            0


Como ele mesmo explica um resultado de 0 a 30 - sem problemas31 a 55 pequena fragmentação que pode ser ignorada, 56 acima o seu sistema deve ser desfragmentado.

Portanto apenas com resultados a partir de 56 é que você deve executar a desfragmentação. Isso é feito com o mesmo comando sem o -c, ficando assim:

Citar
e4defrag  /

ou

Citar
e4defrag  /home

Notas:

1) O e4defrag não funciona em partição Swap,  no diretório lost+found, nem em arquivos alocados em blocos indiretos.

2)  O e4defrag não funciona em pontos de montagem. Como deixei claro acima ele funciona na partição.

3) É seguro usar o e4defrag mesmo com arquivos ou aplicações abertas, contudo,  o desempenho do seu sistema será reduzido enquanto estiver desfragmentando.

4) É preciso que haja espaço livre suficiente no disco para realizar a desfragmentação e efetivamente melhorar o desempenho com a desfragmentação.

5) Você pode usar o e4defrag como usuário normal, mas ele só vai agir nos arquivos pertencentes ao usuário, portanto é melhor usá-lo como root para desfragmentar todos os arquivos.

6) Uma nota pessoal minha!  Eu não recomendo rodar o e4defrag em "discos" SSD só nos tradicionais HDs! 

 

Era isso pessoal!
Título: Re:Desfragmentando o ext4!
Enviado por: niquelnausea em 09 de Maio de 2017, 18:43
fiz um teste rápido em um partição /home que tenho neste formato (ssd, 40% livre), a fragmentação é irrelevante! irei testar em hds comuns e partições / para poder analisar melhor.

ps: quando vai sair um "tutorial" sobre btrfs e snapshots ;D?
Título: Re:Desfragmentando o ext4!
Enviado por: Sampayu em 14 de Maio de 2017, 02:29
O comando precisa ser executado em modo superusuário. Como a maioria utiliza o sistema em modo usuário, o ideal é expor os comandos precedidos por sudo:

Código: [Selecionar]
sudo e4defrag -c /
Código: [Selecionar]
sudo e4defrag -c /home
Código: [Selecionar]
sudo e4defrag /
E assim por diante. :)
Título: Re:Desfragmentando o ext4!
Enviado por: zekkerj em 14 de Maio de 2017, 10:48
Vou dar uma de advogado do diabo.

Não acho necessário desfragmentar sistema de arquivos no Linux.

Isso pq a forma como ele foi criado, essencialmente multi-tarefa, quebra o princípio da localidade que faz a vantagem de se manter os arquivos desfragmentados.


Enviado do meu smartphone.
Título: Re:Desfragmentando o ext4!
Enviado por: Sampayu em 14 de Maio de 2017, 12:07
Vou dar uma de advogado do diabo.

Não acho necessário desfragmentar sistema de arquivos no Linux.

Isso pq a forma como ele foi criado, essencialmente multi-tarefa, quebra o princípio da localidade que faz a vantagem de se manter os arquivos desfragmentados.


Enviado do meu smartphone.

Eu vou ficar no meio termo, baseando-me no muito que já li a respeito deste assunto.

O primeiro ponto a entender é que os sistemas de arquivos Ext2 e Ext3 fragmentam de maneira considerável (em relação ao sistema Ext4). Isso porque usam alocação de dados por blocos. Já o Ext4 utiliza alocação por extensão. A alocação por extensão faz com que a fragmentação seja muito menor. Como hoje em dia a grande maioria dos usuários Linux usa sistema Ext4, a fragmentação do sistema de arquivos é realmente muito pequena e muito lenta, tornando desnecessário desfragmentar, no uso cotidiano.

No entanto, é falso afirmar que o sistema de arquivos não fragmenta: isso não existe. Em algum momento, quando a unidade de armazenamento dinâmico (disco rígido, unidade de estado sólido etc.) estiver "quase cheia" (o que costuma ocorrer quando a unidade de armazenamento está hospedando um volume de dados tal que ocupe algo geralmente entre 90 e 95% da capacidade de armazenamento dessa unidade de armazenamento dinâmico), os novos dados que forem gravados irão se fragmentar.

Portanto, regra geral não é necessário desfragmentar a unidade, pois no uso cotidiano ela estará formatada com sistema de arquivos Ext4 e operando com menos de 90% de sua capacidade de armazenamento comprometida, ou seja: terá mais de 10% de espaço livre. No entanto, quando a unidade ficar com 10% de espaço livre (ou menos que isso), muito provavelmente a fragmentação será suficiente para justificar uma desfragmentação.

Quem frequentemente lida com arquivos muito grandes, e por isto vive "enchendo e esvaziando" a unidade de armazenamento, provavelmente deparar-se-á com momentos em que a unidade estará com uma fragmentação considerável. Portanto, o perfil do usuário (e, consequentemente, seu perfil de utilização da unidade de armazenamento) também interfere.

Importante observar que o programa e4defrag mostra um score para o usuário, informando se é ou não é recomendável desfragmentar o sistema de arquivos. Isso na prática significa que, mesmo executando o e4defrag, o usuário Linux observará como está o nível de fragmentação de sua unidade de armazenamento e, também, como esse nível evolui com o passar do tempo. Isso evita ficar desfragmentando a unidade desnecessariamente, e também facilita ao usuário perceber seu próprio perfil de uso do sistema e o impacto que isso tem (ou não tem) na fragmentação de dados.

Em síntese: regra geral, não é necessário desfragmentar a unidade de armazenamento, mas é bem provável que uma desfragmentação venha a ser necessária quando essa unidade estiver com 90% (ou mais) de sua capacidade de armazenamento comprometida.

Algumas referências:

https://pplware.sapo.pt/linux/porque-nao-e-preciso-desfragmentar-o-disco-em-linux/
http://www.diolinux.com.br/2014/02/por-que-linux-nao-precisa-desfragmentar-discos.html
https://www.howtogeek.com/115229/htg-explains-why-linux-doesnt-need-defragmenting/
http://www.linux-magazine.com/Online/Features/Defragmenting-Linux
Título: Re:Desfragmentando o ext4!
Enviado por: zekkerj em 14 de Maio de 2017, 13:55
Vc não entendeu meu ponto. Eu não estou afirmando que qualquer sistema de arquivos não fragmente; a fragmentação é uma coisa tão inevitável quanto a morte ou os impostos.

O que eu estou afirmando é que a fragmentação faz pouca diferença numa máquina Linux, pq com os vários processos simultâneos, o kernel acaba lendo os arquivos fora de ordem.


Enviado do meu smartphone.
Título: Re:Desfragmentando o ext4!
Enviado por: Sampayu em 14 de Maio de 2017, 14:22
...a fragmentação faz pouca diferença numa máquina Linux, pq com os vários processos simultâneos, o kernel acaba lendo os arquivos fora de ordem.
Enviado do meu smartphone.

Mas a fragmentação - quando é considerável - é um agravante para o fato de o kernel ler os arquivos fora de ordem, torna o processo mais "caótico" do que já é.

O ponto é que, no Linux, essa fragmentação demora bastante para se tornar considerável, sendo essa a razão por que no dia-a-dia é perda de tempo ficar desfragmentando.
Título: Re:Desfragmentando o ext4!
Enviado por: creto em 15 de Maio de 2017, 09:42
Off - Eu não fugirei desta escola jamais.
Grato pelas informações, galactus, zekkerj, Sampayu

T+
Título: Re:Desfragmentando o ext4!
Enviado por: Sampayu em 15 de Maio de 2017, 11:57
Off - Eu não fugirei desta escola jamais.
Grato pelas informações, galactus, zekkerj, Sampayu

T+

De nada. :)
Eu também sou um eterno aprendiz. No Linux é assim, estamos sempre aprendendo algo novo. Mas eu adoro esse sistema, ainda mais quando me deparo com algo assim, rs:  ;D

http://g1.globo.com/jornal-nacional/noticia/2017/05/ataque-hacker-atingiu-computadores-em-quase-100-paises-na-sexta.html