sábado, novembro 20, 2010

Deixando o Ubuntu Linux mais rápido sem aplicar o patch de 200 linhas

Saiu nesta semana q passou um patch (partes modificadas de um programa) que prometeu melhorar a performance no Kernel (núcleo) Linux.
O pessoal da RedHat rebateu informando que é possível fazer esta modificação sem precisar mexer no Kernel.
O site http://blog.coderepository.net/2010/11/19/otimizando-o-kernel-de-seu-desktop-linux/ fez o teste do mesmo e segundo informações postada é sensível a melhora.

Reproduzo o conteúdo do site (sem autorização do autor):

Otimizando o Kernel de seu Desktop Linux

Há três dias (16/11/2010) foi divulgado pela Phoronix um patch de cerca de 200 linhas de código que é milagroso muito bom e aumenta a velocidade do seu Desktop Linux. O próprio Linus comentou que o código era muito bom! Basicamente o que ele faz é usar o novo agendador de processos chamado Brain Fuck Scheduler (nome sugestivo hein!!! deve ser meio complexo né?)
Logo em seguida Lennart Poettering, um desenvolvedor da Red Hat,  sugeriu uma pequena mudança no arquivo /etc/rc.local e no ~/.bashrc do usuário que realiza a mesma tarefa que o patch, sem a necessidade de recompilar o kernel. Na verdade foram feitos alguns testes de performance e chegaram a dizer que a solução proposta for Lennart era melhor do que o Patch:
"OK, I've done some tests and the result is that Lennart's approach seems
to work best. It also _feels_ better interactively compared to the
vanilla kernel and in-kernel cgrougs on my machine. Also it's really
nice to have an interface to actually see what is going on. With the
kernel patch you're totally in the dark about what is going on right
now." (http://lkml.org/lkml/2010/11/16/392)
Testei o patch divulgado mas encontrei alguns erros para habilitá-lo no Ubuntu 10.10, portanto segue a versão corrigida por mim e com algumas melhorias.
Abra o terminal e em seguida faça os seguintes procedimentos:
1) Editar arquivo rc.local
1
marcelo@marcelo$ sudo gedit /etc/rc.local
Insira as seguintes linhas ANTES do “exit 0”:
1
2
3
4
5
mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "1" > /dev/cgroup/cpu/user/notify_on_release
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
Salve e feche.
O rc.local já deverá possuir permissão de execução, mas por garantia vamos dar a permissão novamente:
1
marcelo@marcelo$ sudo chmod +x /etc/rc.local
2) Criar arquivo cgroup_clean
1
marcelo@marcelo$ sudo gedit /usr/local/sbin/cgroup_clean
Insira as seguintes linhas no arquivo:
1
2
3
4
#!/bin/sh
if [ "$1" != "/user" -a "$1" != "/user/" ]; then
 rmdir /dev/cgroup/cpu$1
fi
Salve e feche.
Vamos dar permissão de execução para o arquvo:
1
marcelo@marcelo$ sudo chmod +x /usr/local/sbin/cgroup_clean
3) Editar o arquivo /etc/bash.bashrc
1
marcelo@marcelo$ sudo gedit /etc/bash.bashrc
Inserir as seguintes linhas no começo do arquivo:
1
2
3
4
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$
echo $ > /dev/cgroup/cpu/user/$/tasks
fi
4) Reinicie o computador
Feito! Aproveite seu linux mais rápido!

Um comentário:

Unknown disse...

Muito legal o artigo, parabéns, já usei como referência em vários computadores.

Só uma pequena correção, no bash.bashrc, onde é $ o correto é $$

Novamente, parabéns pelo artigo, ajudou muito.