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

Publicado por Davidson Rodrigues Paulo em 08/12/2010

[ Hits: 11.030 ]

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

Livro Squid, solução definitiva

Resolvendo problemas de dependências das bibliotecas do X

GNOME: problema típico de atualização

Usando vários mirrors no slackpkg

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

Leitura recomendada

Configurando banda larga no Linux

Problema com o Samba em compartilhamento restrito para usuários

Debian 5: Boot em modo texto antes do modo gráfico (GUI)

Removendo os daemons do Evolution e do Tracker (o indexador de arquivos) da inicialização automática do GNOME 3.x

Deixando o Xterm preto e mudando a fonte

  

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 removido 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 removido 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 removido 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