Início » Aplicativos e Software » Otimize o Kernel do seu Linux com um simples patch

Otimize o Kernel do seu Linux com um simples patch

Avatar Por
TB Responde

Uma solução simples para agilizar o Desktop Linux tem dado muito o que falar nos últimos dias. Mike Galbraith, um desenvolvedor do Kernel Linux, aplicou ao Kernel um patch muito pequeno, com aproximadamente 200 linhas de código, que faz um verdadeiro milagre: é capaz de aumentar o desempenho de certas tarefas em até 60 vezes, segundo testes realizados! Tudo isso agrupando as tarefas enviadas para o Kernel de acordo com os seu tty e escalonando-as.

O patch ainda está sofrendo alterações, e com certeza estará em novas versões do Kernel, mas por enquanto aplicar o patch pode ser um processo penoso para quem entende pouco de compilação de Kernel para o Linux. Felizmente, já existem alternativas: Lennart Poettering, um desenvolvedor da Red Hat publicou uma alternativa para o patch que requer apenas a execução de alguns poucos comandos e a edição de alguns arquivos. Como a versão original não funciona no Ubuntu, vou apresentar os dois modelos, assim você pode aplicá-los em qualquer distro Linux que estiver usando.

Patch para Ubuntu:

No terminal, abra o arquivo rc.local com o comando:

sudo gedit /etc/rc.local

Com o arquivo aberto, insira as linhas abaixo antes da linha "exit 0";

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 o arquivo e feche. Agora dê direitos de execução para o arquivo rc.local:

sudo chmod +x /etc/rc.local

Agora, crie o arquivo cgroup_clean

sudo gedit /usr/local/sbin/cgroup_clean

E insira no arquivo o conteúdo abaixo:

#!/bin/sh
if [ "$1" != "/user" -a "$1" != "/user/" ]; then
rmdir /dev/cgroup/cpu$1
fi

Salve o arquivo, feche e de direitos de execução para ele:

sudo chmod +x /usr/local/sbin/cgroup_clean

Calma que falta pouco! Agora edite o arquivo /etc/bash.bashrc

sudo gedit /etc/bash.bashrc

E insira as linhas abaixo logo no começo do arquivo:

if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $ > /dev/cgroup/cpu/user/$$/tasks
fi

Ufa! Agora é só reiniciar o computador. 🙂

Patch para outras distros

Abra o arquivo ~/.bashrc

sudo gedit ~/.bashrc

E insira as linhas abaixo:

if [ "$PS1" ] ; then
mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks
fi

Agora, e só rodar os comandos abaixo no terminal:

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user

Pronto, salve o arquivo, feche e reinicie o computador.

Se você aplicar as alterações, conte para nós como ficou a sua instalação Linux. 🙂

Mais sobre: , , , ,

Comentários

Envie uma pergunta

Os mais notáveis

Comentários com a maior pontuação

Kernel_panic
xeque mate, gamer
Kernel_panic
kkkkkkkkkkkkkk
Victor
Wine e darwine podem ser usados, se eles não emularem, tem o virtual Box. : )
Guilherme Mac
Silicon Graphics? Acho q nunca vou ver uma de perto =O
Marcos
heieiaieaiehaheia, Reiser, meu velho, bom te reencontrar, vc não tem aparecido mais no Mb, quicouve?
Guilherme Mac
Mas é o jeito. Até no Mac OS X usam na surdina (muitos jogos que parecem ser nativos na verdade tem WINE por baixo. Vide jogos da EA para Mac). Esse é o preço de escolher o DirectX.
Hernani
Vou ver como me saio nessas configs aqui no Fedora.
Hernani
HAuhauaHAUHauaHAUAHu RUN BOY, RUN!
Hernani
Conheço esse avatar de velho filosófico de algum lugar (H123er here!)
kylefurtado
O que você acha?
Marcos
Não apresenta porcaria pros outros, é feio...
No dia que o Wine suportar jogos como o F1 2010 eu saio de baiana no próximo carnaval.
JoseRenan
fail de comentário, eu tinha digitado e postado mas não tinha aparecido! o.O
Guilherme Mac
Mas existe tudo isso. O sistema está pronto pra usar, sem complicação*. A personalização é outra coisa; é de caráter pessoal. Não devemos confundir.

(*) Veja: http://migre.me/2qtWt
Alexandre
certamente. mas minha relacao com unix sempre foi à distancia, sonhando em pilotar uma silicon graphics... coisas do passado.
Fredson Sousa
Hoje teve atualização no Kernel Linux, pelo Gerenciador de Atualizações do ubuntu será que este patch estava nessa atualização?
Gabriel Lisboa
alguem ja testou no ubuntu netbook remix para eeepc???

nao quero ter que reformatar, meu sistema la esta 100%, com muitos programas instalados, inclusive crossover com office 2007 sem bugs. entre muitos programas....

refazer td vai da trab, alguma cobaia se oferece?

e, para todos que testaram, a compatibilidade (e pos-operatorio, digo pos-instalatorio) ficou bom mesmo???
Guilherme
Te apresento o Wine e o Darwine.
Guilherme Mac
se vc soubesse o poder de um shell do Linux e de sistemas UNIX, como o Mac OS X, não iria lembrar do DOS :P
Luccio
Puxa, agora sim! Estava doido p/ arrumar o que fazer, então vou digitar as 200 linhas e arrumar eu mesmo o kernel! Afinal pra que plug and play e drivers otimizados, webcam funcionando, se podemos sempre aprimorar o melhor OS que ninguém usa e nem gosta de usar? Obrigado, boa dica! Linux for Linux Users - "The Lusers"! :)
Bruno Gall
\o\, vou testar daqui a pouco
Eduardo Andrade
Ponto para o Linux
Alexandre
me lembrei do DOS agora , urghh
bawlaw
ahuahuahuahuuh
boa xD
Guilherme Mac
Ponto para o software livre e suas "contribuições da comunidade" =)
JoseRenan
Li essa notícia e ao que parece terá esse patch já na versão 2.6.38 do kernel.

Parece que o Linus Torvalds até elogiou o cara que fez o patch.

www.pud.im/phoronix
www.pud.im/kernel
Renyer
Isso não é um bug, é um melhoramento.


Mais uma prova da superioridade do Linux.


“Quanto vale sua tranquilidade?”

Usar o Window$ tendo que instalar anti-vírus, anti-malware, anti-numseioque.

Responde a sua pergunta.
JoseRenan
li essa noticia mas não mostrava como fazer, e ao que parece a versão 2.6.38 do kernel já terá esse patch.

O Linus Torvalds elogiou o cara que fez o patch

-> http://pud.im/kernel
-> http://pud.im/phoronix
Guilherme Mac
Ninguém fica "consertando bugs". Esse trabalho deixa-se para profissionais, e em sua maioria, empresas q gastam num total bilhões no desenvolvimento do Linux. Dá uma lida no link nos comentários mais acima q tem até o relatório de desenvolvimento.

E isso, a matéria, é para quem quiser (ninguém é obrigado) customizar o kernel. Sistemas de código-aberto isso é muito fácil. Vc pode fazer seu kernel rodar em sintonia com seu computador ao invés de ter um sistema com kernel genérico. Sistemas de código-fechado não é possível fazer isso.
@RodolfoBR
achei em outro site o pq desse erro ai...

http://blog.coderepository.net/2010/11/19/otimizando-o-kernel-de-seu-desktop-linux/
@rodolfobr
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $ > /dev/cgroup/cpu/user/$$/tasks
fi
(no do ubuntu)

não seria:

if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
fi

?


no lugar de $ colocar $$ ?
Marcelo
Queria saber se e possível fazer isso no Mac OS.
Lucci
Oba, quero digitar cada uma das 200 linhas no meu Linux, não vejo a hora de perder mais alguns momentos da minha vida consertando bugs de um OS que quase ninguém usa! Quanto vale sua tranquilidade? :D
@RodolfoBR
Fiz exatamente como indicado no post e apareceu isso:

bash: echo: erro de escrita: Argumento inválido



ubuntu 10.10
Guilherme Mac
Não tentei (e nem vou tentar), mas em qual parte dá erro? Erro pq usa "sudo"? Se for é só ativar o "su". Se for outro erro, tente usar no lugar do gedit o nano. Uma vez tava testando umas coisas e qualquer editor gráfico de texto dava erro de permissão.
Enxaqca
Bom, se vc fez exatamente o que está ali, vai notar que ao abrir o terminal (Ubuntu 10.10), dá um erro de permissão...

Inclusive o artigo original do link que o @funras postou não funciona direito...
@RodolfoBR
Na verdade é um patch alternativo ao de 200 linhas né :)

Apliquei aqui... mas por enquanto não tenho nada a dizer a respeito.
Daniel Drumond
Ao que entendi, ele baixa o patch de algum repositório e já o aplica, só não consegui achar a linha que faz isso. @[email protected]"
@funras
Não precisa de patch e compilação. Bastam 2 comandos e algumas linhas no .bashrc

http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
@JoaoPedroSachet
Nem o ArchLinux é tão espartano assim...
Mateus
Perai, perai perai!!!

Deixa eu ver se entendi: nao existe nenhum patch PARA O KERNEL, mas apenas uma configuração de features já existentes. Eu nao vou precisar recompilar kernel e essa porra toda, certo?

Se for assim: genial!
Basta priorizar o escalonamento para os processo ligardos ao tty do X e voilà!
rafael bernard
Linux é legal é free você pode fazer o caralho a quatro que quiser mas tem uma restrição, os programas, igual no Mac, só saio do window$ da micro$oft quando todos os programas rodarem nos outros OSs da vida.
Guilherme Mac
Aproveite e dê uma olhada :)
http://sinapseslivres.com.br/2010/11/mitos-sobre-linux/
@rodolfobr
cadê as 200 linhas? :)
Guilherme Mac
Um dia aprendo a fazer isso :P
Guilherme Mac
Eu tbm. Faço tudo de maneira fácil.
rafael bernard
ele pede a senha da rut
mas a minha chefe, a Ruth, faltou hoje!
eu ligo pra ela e peço a senha? :V
Paulo Graveheart
foi uma typo mesmo :\
Rodrigo Fante
Amo Linux e sua facilidade.
Jorge
Por que fazer o "gedit ~/.bashrc" com "sudo"???? Esse arquivo está na home do usuário, e ele deve ter total permissão de alterá-lo!

Aliás, alterar esse arquivo como root é que pode dar problemas, pois o usuário depois não pode mais alterá-lo sem que antes corrija as permissões.