4) Alterando o fstabO arquivo fstab é responsável pela montagem das partições e seus respectivos sistemas de arquivos. O fstab está localizado na pasta /etc. Você pode alterar as opções de montagem do sistema de arquivos utilizado para ele ficar mais rápido. Se puder fazer uma formatação personalizada, você conseguirá melhores resultados. Aqui vou colocar algumas opções que vão acelerar o ext4, o xfs e o jfs. Tudo bem mastigadinho e indicando o que trás risco ou não para os seus dados!
a) Para o ext4:noatime - Desativa o registro de tempo de acesso do arquivo, que é basicamente uma operação de gravação que deve ser evitada em SSDs. Trocando em miúdos, lembram quando vocês clicam com o botão direito do mouse para acessar as propriedades de um arquivo, lá contém a data de gravação e a data em que o arquivo foi acessado. Com essa opção o sistema não registrará mais quando você acessou o arquivo, apenas quando você modificar o mesmo. Essa opção não envolve risco de perda de dados.
barrier=0 - Esse assunto é complexo e já levou a muita discussão entre os desenvolvedores, mas vou procurar resumir para vocês. O "barrier" certifica-se que tudo esteja em ordem entre o cache do disco rígido e a sincronização de dados e metadados antes da gravação do journal. Com a opção "0" essa certificação deixa de existir. Barrier=1 atrasa muito o desempenho do disco. Não é seguro você usar a opção "Barrier=0" no ext4 em um sistema sem No-break ou em Notebooks sem bateria. Por curiosidade, o ext3 usa o barrier=0 por padrão. Eu uso o barrier=0 e só perdi o que estava aberto até agora.
commit=100 - O ext4 pode ser configurado para sincronizar dados e metadados a cada "n" segundos. O valor padrão é 5 segundos. Isso significa que se você sofre uma queda de energia, você irá perder apenas os últimos 5 segundos de trabalho (se o seu sistema de arquivos não for danificado, graças ao Journaling). O valor padrão ou qualquer valor abaixo dele irão afetar o desempenho para pior, mas isso será bom para a integridade dos dados. Colocar um valor igual a zero terá o mesmo efeito do valor padrão, 5 segundos. Aumentar esse valor melhorará o desempenho.Um valor igual a 60 já está bom o bastante para discos rígidos de pratos magnéticos. Valores superiores a esse, como o igual a 100 do exemplo, são mais indicados para discos SSD.
Exemplo de um fstab padrão após instalação do Ubuntu:
[...]
UUID=d818ddf9-ff01-e21a-a67d-3ceab43a9e2b / ext4 relatime,errors=remount-ro 0 1
UUID=0d339122-74e0-e0ea-805a-7879b1fa3172 /home ext4 relatime 0 2
[…] Vou deixar como exemplo as opções que uso no meu fstab do Netbook, com apenas 1 HD e journal interno no mesmo sistema de arquivos (notem que não há espaço entre as opções, apenas vírgulas):
[...]
UUID=d818ddf9-ff01-e21a-a67d-3ceab43a9e2b / ext4 noatime,barrier=0,commit=60 0 1
UUID=0d339122-74e0-e0ea-805a-7879b1fa3172 /home ext4 noatime,barrier=0,commit=60 0 2
[...] A opção do arquivo anterior:
errors=remount-ro pode ser removida com segurança pois é padrão do sistema.
b) Para o xfs:noatime = Os tempos de acesso dos dados não serão atualizados quando lidos, apenas quando gravados. Não há risco de perda de dados com essa opção. Se o tempo de acesso dos dados for importante para você não use essa opção.
nodiratime = Os tempos de acesso dos diretórios não serão atualizados quando lidos, apenas quando gravados. Não há risco de perda de dados com essa opção. Se o tempo de acesso dos diretórios for importante para você não use essa opção.
nobarrier = essa opção faz com que a verificação dos dados entre o cache do disco e o buffer da memória não sejam mais feitas. Com essa opção ativa você acelera a gravação dos dados mas existe o risco de perda de dados em uma queda de energia ou travamento do sistema, aquilo que estiver aberto pode ser perdido.
logbufs = diz o número de buffers que devem ser guardados na memória, esse número varia de 2 a 8. Nos kerneis mais recentes o 8 já é padrão. Essa opção ajuda muito o XFS a lidar com arquivos pequenos e aumenta o consumo de RAM. Use 8 e seja feliz!
logbsize = Especifica o tamanho de cada buffer na memória. Você pode especificar o tamanho em bytes ou kilobytes, o padrão é 32k nas versões mais recentes do kernel. Você pode aumentar esse valor para 64k, 128k até o máximo de 256k. Essa opção ajuda muito o XFS a lidar com arquivos pequenos e aumenta o consumo de RAM. Use 256k e seja feliz!
allocsize = determina o tamanho final da pré-alocação do Buffer de I/O. Seu tamanho varia de 64Kib a 1Gib. Essa opção ajuda a diminuir a fragmentação do disco e aumenta a velocidade de transferência de arquivos grandes. No caso do disco rígido servir apenas para arquivos grandes como imagens ISO, use 512mb, no geral 64mb está de bom tamanho. Você não aumenta o risco de perda de dados com essa opção. Na prática notei que quanto maior esse número, melhor a taxa de transferência, mas também o sistema fica mais “preso” a essa transferência, então não abuse.
delaylog = Atrasa a gravação das informações no journal do XFS o máximo possível. São parâmetros internos do XFS que determinarão quando as informações serão salvas. Essa opção acelera muito o XFS mas aumenta o risco de perda de dados no caso de uma queda de energia ou travamento do sistema. Note que você não está desativando o Journal, apenas atrasando a gravação dos dados nele. A opção delaylog não funciona em versões antigas do XFS ou do kernel linux.
osynciosync = Essa aqui é complicada, mas resumindo, essa opção tem haver com uma espécie de garantia de que as gravações dos dados e metadados ocorram em sincronia com o cache do disco. Entendeu? Eu também não!
Para piorar ainda mais, dizem que essa opção é obsoleta e não faz mais “efeito”. Na prática o que notei é que o XFS pode ficar mais ágil com essa opção no fstab do que sem ela, dependendo da carga no sistema! Para quem usa kerneis mais novos, talvez o melhor seja não usar essa opção. Faça os seus testes e observe se ela ajuda mais que prejudica seu sistema. Há sim, ela não é indicada para quem vai ter grandes bancos de dados no disco rígido.
inode64 = indica que o XFS pode criar inodes em qualquer lugar do sistema de arquivos, essa opção pode criar problemas em aplicações de backup que não podem lidar com grande número de inodes. Essa opção é sempre indicada em grandes servidores de arquivos. Na prática achei que aumenta a latência em geral para o desktop. Também notei o seguinte, ou você usa o inode64 ou usa o allocsize para melhor desempenho. Os dois juntos atrasaram o tempo de resposta do desktop! Eu prefiro o allocsize para desktop e o inode64 para servidores de arquivos. Faça os seus testes e verifique se ele é bom pra você.
Use o seu editor preferido e como root abra o fstab para colocar alguma das opções acima, o meu fstab ficou assim:
/dev/disk/by-id/ata-TOSHIBA_MK6465GSXN_31F8B103B-part5 / xfs
noatime,nobarrier,logbufs=8,logbsize=256k,allocsize=64m,delaylog 1 1
/dev/disk/by-id/ata-TOSHIBA_MK6465GSXN_31F8B103B-part6 swap swap defaults 0 0
c) Para o jfsnoatime - Desativa o registro de tempo de acesso do arquivo, que é basicamente uma operação de gravação que deve ser evitada em SSDs. Trocando em miúdos, lembram quando vocês clicam com o botão direito do mouse para acessar as propriedades de um arquivo, lá contém a data de gravação e a data em que o arquivo foi acessado. Com essa opção o sistema não registrará mais quando você acessou o arquivo, apenas quando você modificar o mesmo. Essa opção não envolve risco de perda de dados.
5) Otimizando um pouco mais seu sistema de arquivos e o acesso aos dados do seu Disco rígido Aqui vamos executar alguns comandos para checar, desfragmentar, refazer o jornaul e otimizar diretórios de acordo com o sistema de arquivos instalado.
a) Para o ext4Se você é um instalador compulsivo de programas ou tem muitos arquivos espalhados em vários diretórios, você pode melhorar um pouco mais as coisas otimizando os diretórios. Faça isso com o seguinte comando:
#fsck -t ext4 -f -D -v /dev/sdxy
O comando acima deve ser realizado como root na partição alvo
DESMONTADA! Use um Live-CD ou um Live-PenDrive ou o modo de recuperação do seu sistema para isso. O que ele faz é refazer o índice de diretórios do ext4, reindexando e comprimindo os mesmos se possível. É ótimo de ser usado depois de você ter finalizado toda a instalação do seu sistema, digo de tudo mesmo, codecs e programas afins que você usa. Também é bom de ser feito de tempos em tempos mesmo se você não continuar a inchar o seu sistema com dados em muitos diretórios. Com o
fsck -f -D ele obriga a otimização mesmo em um sistema limpo. O
-v vai te mostrar um relatório final da integridade do seu sistema de arquivos, mostrando inclusive o número de badblocks do disco se existirem.
b) Para o xfsEsta é uma grande vantagem frente a outros sistemas de arquivos que sua distro pode usar. O XFS é capaz de ser desfragmentado com suas partições montadas e ativas sem risco de perda de dados. Contudo, eu sugiro que o ideal seja fazer isso com todos os programas e arquivos fechados. O motivo é simples, se for detectado que um arquivo está em uso este arquivo em particular não é desfragmentado. Quanto mais potente for o seu processador mais rápida será a sua desfragmentação. A primeira desfragmentação/reorganização é bastante demorada. O comando para desfragmentar é o xfs_fsr e deve ser dado como root. Ele vai reorganizar o sistema de arquivos um arquivo por vez, procurando compactar e melhorar a disposição das extensões dos arquivos junto aos blocos e inodes, ele também desfragmenta os 10% de arquivos mais fragmentados por vez que é executado. Como root você pode fazer:
xfs_fsr -t 8000 /dev/sdxy -v
Onde o -t é o tempo máximo que ele pode levar para desfragmentar/reorganizar em segundos. Se não colocar o -t o valor padrão é 7200 ou 2 horas. O -v é o modo verbose, ou seja, ele vai te mostrar o que está fazendo, muito bom para saber se ele pulou algum arquivo que estava aberto.
Você também pode saber o quão desfragmentado o seu disco rígido está antes de executar uma desfragmentação. O comando é:
#xfs_db -c frag -r /dev/sdxy
Exemplo da saída do comando:
linux-tl2k:~ # xfs_db -c frag -r /dev/sda5
actual 232989, ideal 232230, fragmentation factor 0.33%
Eu recomendo que você faça uso do xfs_fsr todas as vezes que uma quantidade grande de programas forem instalados ou removidos, assim como se os seus dados forem inseridos, alterados ou deletados do disco. Eu não espero a fragmentação aumentar, como ele reorganiza os inodes o sistema fica sempre ágil com a execução frequente do xfs_fsr.
c) Para o jfs:a) Refaça o Log do Journal – Após ter terminado toda a instalação do seu sistema (pronto para uso, você já instalou todos os programas que usa, os codecs e de preferência já colocou seus dados nele), agora é o momento de refazer o Log do Journal para acelerar ainda mais as coisas. Entre com um Live-CD do Ubuntu (lembre-se de instalar o pacote jfsutils) ou do Parted Magic (este você não precisa se preocupar em instalar o jfsutils) e execute o seguinte comando como root
na partição desmontada:
#jfs_fsck -f -v /dev/sdxy
Onde o xy deve ser trocado de acordo com o seu disco rígido em questão. Na dúvida, use o
fdisk -l para descobrir! O comando acima obriga a checagem do sistema de arquivos JFS em seu disco rígido e refaz o Log do Journal mesmo em um sistema marcado como limpo, além disso ele vai mostrar para você todas as etapas durante o processo, qualquer erro encontrado será automaticamente corrigido. Você pode executar esse comando de tempos em tempos se você for um instalador de programas compulsivos ou se encher muito rapidamente o seu disco rígido. Com isso você notará um rápido acesso as pastas, fotos e documentos.