Arch

Arch

domingo, 8 de abril de 2012

Acelerando o boot em Ext4 com o E4RAT

Como reduzir drasticamente o tempo de boot e o carregamento do X?

Para os usuários do sistema de arquivos Ext4 existe o e4rat.
Literalmente significa: "Ext4 - Reducing Access Times", traduzindo: "tempo de acesso reduzido em Ext4".

O e4rat é um projeto de Andreas Rid e Kiefer Gundolf. É um pacote composto das seguintes ferramentas:
e4rat-collect;
e4rat realloc;
e4rat-preload.

A versão atual é 0.2.1.

Detalhamento:

Se você analisar bootchart "clássico" irá notar que nem o disco nem CPU são utilizados integralmente durante o processo de boot. O e4rat é capaz de alterar esse comportamento padrão do boot fazendo pleno uso de disco e CPU durante o mesmo e, assim, reduzir o tempo de inicialização drasticamente.

Ele consiste de três etapas:
e4rat-collect - coletar arquivos por um tempo especificado (o padrão é 120 segundos, mas isso pode ser ajustado);
e4rat-realloc - realocar arquivos;
e4rat-preload - pré carrega o sistema.

Quem pode beneficiar-se, e quem não pode:

e4rat tem provado ser extremamente eficaz para um ambiente típico de usuário único que loga direto no X, mesmo com um grande número de programas abertos.

Se você tem um ambiente de servidor sem X a redução pode não ser tão drástica. Quem utiliza drives SSD não se beneficiarão, porque não existem peças móveis (como nos HDs tradicionais) e, assim, (quase) sem latência de disco.

ATENÇÃO: A versão atual do e4rat irá danificar seriamente qualquer partição que foi convertida para ext4 a partir de outros sistemas de arquivos. Provavelmente porque os arquivos existentes não são convertidos para usar extensões, e o e4rat não tem mecanismo interno para detectar esta condição.

Antes de utilizar e4rat você deve fazer backup das partições, reformatar como ext4 (caso não tenham sido criadas diretamente em ext4) e depois restaurar os backups.

Dada a situação atual e a natureza do programa, é sempre aconselhável efetuar backup do sistema antes de tentar a realocação."

Esta dica foi traduzida para o português a partir do original:
E4rat (em inglês)

Obs.: Eu pulei passo acima e para mim funcionou perfeitamente mas faça se assim o quiser, será por sua conta e risco.

Instalação
Para usuários do Arch Linux:

e4rat está disponível no AUR: E4rat no AUR

Para usuários de outras distros ou debian e debian-likes: http://e4rat.sourceforge.net/

e4rat-collect
Iniciando o processo:

# e4rat-collect

Isto fará o e4rat coletar uma lista de arquivos no momento do boot, para que isso ocorra acrescente o seguinte parâmetro a linha do kernel no seu /boot/grub/menu.lst (usuários do grub legacy) ou no arquivo /boot/grub/grub.cfg (usuários do grub2), para os que como eu utilizam o Syslinux o procedimento é idêntico, não pesquisei no tocante ao lilo:

init=/sbin/e4rat-collect

Esse procedimento terá que ser feito apenas uma vez, então, você pode preferir acrescentar diretamente no momento do boot através dos comandos nativos de edição do seu boot-loader.

Quando o e4rat-collect iniciar irá "gravar" o boot do sistema por um padrão de 120 segundos.

Então, se você faz o boot, loga no X, abre seu navegador favorito e cliente de e-mail, e outros programas que utiliza com frequência logo após o boot dentro do tempo de dois minutos, cada uma dessas atividades é registrada. Para alterar o padrão de 120 segundos edite "/etc/e4rat.conf". Para interromper manualmente use "e4rat-collect" a qualquer tempo antes do especificado faça:

# e4rat-collect -k

Ou:

# pkill e4rat-collect

Durante uma inicialização bem sucedida e decorrido o tempo atribuído você terá o seguinte arquivo: /var/lib/e4rat/startup.log

Não se esqueça de remover o comando "e4rat-collect" do seu "menu.lst" ou arquivo "grub.cfg" (não é necessário se você inseriu na linha de comando) ou do "syslinux.cfg".

e4rat-realloc
Para a mudança do processo de realocação para a inicialização:

$ sudo init 1

Logue como root e execute:

# e4rat-realloc /var/lib/e4rat/startup.log

Pode demorar um pouco dependendo da quantidade de arquivos existentes no arquivo "startup.log".

e4rat-preload
Adicione o seguinte parâmetro de modo permanente a linha do kernel no seu /boot/grub/menu.lst (grub legacy), /boot/grub/grub.cfg (grub2) ou "syslinux.cfg":

init=/sbin/e4rat-preload

Reinicie o computador e aproveite seu novo boot.

Nenhum comentário:

Postar um comentário