Patch de 4 linhas para acelerar o Linux (Fedora 14)

Publicado por Davidson Rodrigues Paulo em 08/12/2010

[ Hits: 10.266 ]

Blog: http://davidsonpaulo.com/

 


Patch de 4 linhas para acelerar o Linux (Fedora 14)



Certo dia, vi uma notícia bastante animadora: um patch de apenas 200 linhas de código do kernel Linux capaz de melhorar o desempenho do sistema em até 60x (isso mesmo, sessenta). É uma pena que, pra testar, seria necessário fazer o download do kernel, aplicar o patch, configurar, compilar e torcer pra dar certo...

Foi então que li esta notícia em que um desenvolvedor da Red Hat mostrava como conseguir resultados ainda melhores utilizando apenas 4 linhas de código (na verdade são 6, como vocês verão depois) no espaço do usuário, o que quer dizer que pode ser feito no kernel padrão (e não precisa nem reiniciar o computador).

É óbvio que eu fui testar na mesma hora no meu Fedora 14. Os procedimentos não funcionaram de primeira, investiguei e achei uma postagem que explicava que o problema era causado por uma particularidade do Fedora, especificamente as versões 13 e 14, onde o cgroup fica configurado em /cgroup ao invés de em /sys/cgroup.

Com poucas modificações, consegui finalizar a configuração e, devo dizer, me surpreendi muito com o resultado.

Agora, chega de papo-furado. Para habilitar esse recurso no Fedora 13 e 14, faça o seguinte:

# yum -y install libcgroup
# service cgconfig restart
# chkconfig cgconfig on
# touch /etc/profile.d/speedup.sh
# chmod +x /etc/profile.d/speedup.sh


Depois, edite o arquivo /etc/profile.d/speedup.sh e adicione as 4 linhas abaixo.

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

Depois, edite o arquivo /etc/rc.local e adicione as 2 linhas abaixo.

dir=/cgroup/cpu/user ; [ -d "$dir" ] || mkdir -m 0777 "$dir"
mount -t cgroup cgroup "$dir" -o cpu ; chmod 0777 "$dir"

Não é necessário reiniciar o computador para testar os resultados, basta executar o comando abaixo (como root) e depois fazer logout.

# bash /etc/rc.local

A diferença é imediata. O sistema vai responder muito mais rapidamente, dando a impressão de que você está utilizando outro computador, muito mais poderoso.

Fonte: davidsonpaulo.blogspot.com

Outras dicas deste autor

Você conhece o Apatar?

Como desmontar um compartilhamento NFS travado

IV Encontro Nacional Linuxchix Brasil - Descobridor dos sete mares

Baixando todos os arquivos de uma URL com o wget

Desfazendo atualizações de software no Red Hat/Fedora/CentOS

Leitura recomendada

Removendo mensagem do openrc-run no Gentoo

Locales no Slackware

Instalando NO-IP no Debian 6.0

Assistir no Hulu fora dos Estados Unidos

Personalizando o menu do Fluxbox

  

Comentários
[1] Comentário enviado por eldermarco em 09/12/2010 - 11:17h

Eu já cheguei a fazer esses procedimentos, mas no meu caso, não notei grandes diferenças.. =/

Aliás, esperava que o login fosse mais rápido também, mas continua lento. Ouvi algo sobre se notar essa diferença mais quando se tem muitos aplicativos abertos, o que não é o meu caso. Pode ser isso, sei lá.

[2] Comentário enviado por davidsonpaulo em 09/12/2010 - 11:36h

Elder, até agora eu realizei esses procedimentos em dois computadores: na minha estação de trabalho da empresa e no netbook de casa. Na estação de trabalho a diferença foi gritante, mas no netbook de casa não houve nenhuma melhora perceptível. A maior diferença entre esses dois computadores é o acelerador gráfico (placa de vídeo). Talvez em computadores com vídeo furreca esse patch não consiga fazer muita diferença.

[3] Comentário enviado por eldermarco em 09/12/2010 - 12:29h

Então, no meu caso tenho uma Nvidia, conforme saída do comando 'lspci | grep VGA', abaixo:

00:10.0 VGA compatible controller: nVidia Corporation C73 [GeForce 7050 / nForce 610i] (rev a2)

Mas é uma placa on board. No entanto, isso não está ligado diretamente ao acelerador gráfico, está? Bom, não li os pormenores desse patch, então não sei exatamente o que ele faz para aumentar tanto o desempenho assim.. =)

[4] Comentário enviado por izaias em 09/12/2010 - 13:02h

Apliquei o Patch no Ubuntu, o ganho foi perceptível.
O tempo de resposta diminuiu na abertura de aplicativos pesados (como o OpenOffice) e cálculos complexos com a planilha eletrônica.
O Synaptic, por exemplo, abre quase que instantâneamente. Sem exageros pessoal, por incrível que pareça.

[5] Comentário enviado por removido em 09/12/2010 - 13:52h

No mint 10, maverick 10, o ganho só ocorreu com aplicativos pesados, como disse o colega izaias. De resto, nada assssssim tão esplendoroso mas já é alguma coisa... Embora não tenha chego aos pés do mepis linux 11 com seu kernel patcheado nao-sei-com-quê ultra rápido.

[6] Comentário enviado por pinduvoz em 09/12/2010 - 16:47h

Bom, e como se aplica esse patch em outras distros?

[7] Comentário enviado por izaias em 09/12/2010 - 16:57h

Pinduvoz, o link para aplicar no Ubuntu ( ou Debians-Like): http://twixar.com/RaJBBL

[8] Comentário enviado por davidsonpaulo em 09/12/2010 - 17:34h

pinduvoz, o procedimento genérico está na página cuja URL está 2º parágrafo da dica: http://blog.internetnews.com/skerner/2010/11/forget-200-lines-red-hat-speed.html Abraço!

[9] Comentário enviado por pinduvoz em 09/12/2010 - 19:18h

Obrigado, Izaias e davidsonpaulo.

Vou tentar o patch no PCLinuxOS, já que estou sem Ubuntu aqui.

[10] Comentário enviado por pinduvoz em 10/12/2010 - 06:20h

Testei.

Parece que meu AA1 ficou um pouco mais esperto.

Agora vou testar no notebook, que já é muito rápido.

[11] Comentário enviado por pinduvoz em 10/12/2010 - 06:48h

Não parece. Ficou mesmo.

Deu para notar de maneira mais evidente conforme eu fui usando.

[12] Comentário enviado por izaias em 10/12/2010 - 10:39h

Muito bom né Pinduvoz!

Aliás, esqueci de cumprimentar o Davidson.
A maioria dos sites só disponibilizaram o Patch já adaptado para o Ubuntu(ou Debians-Like), mas e os outros sistemas? Só existe Ubuntu?

Ótima Dica Davidson!

(Dicas deveriam ter opção de nota, são tão importantes quanto os Artigos)

[13] Comentário enviado por pinduvoz em 10/12/2010 - 14:05h

No PCLinuxOS edita-se "/etc/rc.d/rc.local", pois "/etc/rc.local" é um link para o arquivo anterior.

E segui o link fornecido pelo Izaias.

[14] Comentário enviado por batista em 11/12/2010 - 15:28h

Excelente Dica. Parabens ao davisonpaulo.
Segui a dica tambem do link http://blog.coderepository.net/2010/11/19/otimizando-o-kernel-de-seu-desktop-linux/ , para testar no meu Zenwalk Linux 6.4 e nao deu nenhum erro apos reiniciar o sistema.
Conforme fui usando os programas(OOffice,vlc,Icecat,)o sistema respondeu muito bem,mesmo meu notebook tendo uma placa VGA da SiS e chipset tambem com apenas 750 de RAM.
Se alguem conseguiu testar no Slackware e teve sucesso e bom comentar...

[15] Comentário enviado por rfcsilva em 26/12/2010 - 15:52h

Boa tarde!
Antes de qualquer coisa parabéns pela dica, e será que é possível aplicar este procedimento no Debian 5.07, e caso haja erro, o que fazer.

[16] Comentário enviado por removido em 27/12/2010 - 09:52h

A dica funfou no ubuntu/mint somente após eu habilitar o gerenciamento de energia "ondemand".

[17] Comentário enviado por jucimar_setubal em 27/12/2010 - 18:46h

Olá Davidson!

Estou utilizando o Fedora 14, fiz o passo-a-passo para habilitar este recurso e sempre aparece este erro:
"mkdir: é impossível criar o diretório "“/cgroup/cpu/user”": Arquivo ou diretório não encontrado
mount: o ponto de montagem “/cgroup/cpu/user” não existe
chmod: impossível acessar "“/cgroup/cpu/user”": Arquivo ou diretório não encontrado"

Tentei manualmente fazer as alterações com o chmod nas pastas, mas não conseguir exito. Sou iniciante, buscando grandes mudanças.
Se puder me ajudar a corrigir para habilitar o recurso eu agradeço.

Um forte abraço!

[18] Comentário enviado por davidsonpaulo em 27/12/2010 - 22:10h

Jucimar, parece que o serviço cgroup não está rodando. Você tem certeza de que executou os comandos abaixo, como instruído no começo da dica?

# yum -y install libcgroup
# service cgconfig restart
# chkconfig cgconfig on

Obs.: os # não fazem parte dos comandos

[19] Comentário enviado por jucimar_setubal em 27/12/2010 - 22:55h

Sim!!! Executei todos os passos como o instruído Davidson. Sei também que "#" faz parte do linux no momento em que você passa para o modo root.
Estava neste momento verificando no "top" - Gerenciador de serviços se havia sido iniciado e não encontrei, ele fica no gerenciador?
Ainda continua aparecendo a mesma mensagem, será que não é justamente as permissões?


[20] Comentário enviado por dsbonafe em 26/01/2012 - 00:51h

O script se mantém o mesmo no Fedora 16? Abç.

[21] Comentário enviado por davidsonpaulo em 26/01/2012 - 09:33h

No Fedora 16 não é necessário utilizar esse script, porque as funções executadas pelo patch for incorporadas por padrão ao sistema.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts