P Q P, quem puxou o freio de mão?

Acabou de comprar um computador novo, certo? Hum, muito bom. Já foi logo instalando a distribuição que mais gosta né? Claro, com um foguete deste não há distribuição que irá agüentá-lo. Só que a configuração do PC do seu vizinho é pior que a sua, no entanto o seu PC insiste em chegar atrasado para a festa?

[ Hits: 33.123 ]

Por: Antonio Carlos Lemos Júnior em 30/01/2007


Conhecendo o bootchart



Pensando na situação do P Q P, o cidadão chamado Owen Taylor (http://www.redhat.com/archives/fedora-devel-list/2004-November/msg00447.html (Inglês)) resolveu idealizar um aplicativo que fornecesse informações de como anda o processo de boot.

Este aplicativo chama-se bootchart. Ele é desenvolvido em script. O funcionamento é o seguinte: O software é inicializado através do init e vai coletando as informações durante todo o processo de boot. Quando o software verifica que está para iniciar o ambiente gráfico, ele para de coletar os dados e cria um arquivo chamado bootchart.tgz, que por padrão estará localizado entro da pasta /var/log.

Como o aplicativo de renderização foi feito em Java, será necessário a instalação dos pacotes referentes ao desenvolvimento de Java, além de instalar o pacote ant. Caso não queira fazer a renderização no seu sistema, no site do bootchart existe a possibilidade de fazê-lo remotamente através do link:
Vou tentar reproduzir em meu sistema Fedora Core 6 como ele veio de fábrica :-), ou seja, com todos os serviços startados no início. Porque tentar reproduzir? Como o meu sistema já estava instalado e de certa forma otimizado, não lembro bem de quais serviços ficam ativos após a instalação do sistema.

Sistema de teste => Fedora Core 6 atualizado até na tampa.

Passos para a instalação do software:

1) Faça o download do software => http://www.bootchart.org/download.html
2) Descompacte-o => tar -jxvf bootchart-0.9.tar.bz2
3) Entre no diretório => bootchart-0.9
4) Como root digite => ./install.sh (Ele irá copiar o arquivo bootchartd para a pasta sbin e tentará alterar o grub ou lilo automaticamente).


5) Como não tenho o aplicativo grubby instalado, vou ter que alterar na mão o meu arquivo menu.lst. Para isto vou utilizar o nano, que é um editor pequeno semelhante ao vi, porém mais intuitivo. O arquivo do grub encontra-se em /boot/grub/menu.lst. No caso do lilo, este encontra-se na pasta /etc/lilo.conf.

ATENÇÃO: Não remova a entrada principal para o sistema, pois caso não consiga dar boot você irá utilizá-la para verificar o que ocorreu.


OBS.: Utilizei o editor nano, mas nada impede que você utilize o kwrite, kedit ou gedit para fazer esta alteração. Veja que existem duas alterações: removi a entrada "rhgb quiet" (elimina a chamada de boot gráfico, desta maneira o sistema gráfico é chamado somente uma vez) e inseri o conteúdo "init=/sbin/bootchartd". Feito isto, salve o arquivo e vá até a pasta /sbin e verifique se o arquivo bootchartd realmente está nesta pasta.

7) Dê boot

8) No meu sistema os seguintes serviços estão startados:

acpid
anacron
atd
autofs
avahi-daemon
avahi-dnsconfd
bluetooth
cpuspeed
crond
dhcpd
firstboot
gpm
haldaemon
hidd
ip6tables
iptables
irqbalance
isdn
kudzu
lm_sensors
messagebus
netfs
network
nfs
portmap
sendmail
smartd
smb
sshd
syslog
vncserver
xinetd
yum-updatesd

Além disso o sistema SELinux está ativado para modo permissivo. Como meu sistema já estava otimizado, este serviço estava desligado. Ao reativá-lo recebi uma mensagem de que o SELinux iria reetiquetar (era o que estava escrito :-) ) todos os arquivos e isto poderia levar algum tempo. Beleza, vamos ver quanto tempo ele leva para fazer isto também.

9) Creio que agora é só dar boot

10) Será gerado um arquivo chamado bootchart.tgz dentro da pasta /var/log

11) Entre no site http://www.bootchart.org/download.html e envie o arquivo bootchart.tgz. Dependendo do tamanho demora um pouco, de 1 a 2 minutos, é normal.

12) Com o SELinux reativado e ele tendo que reetiquetar os arquivos o sistema demorou 5:28 para iniciar. Veja abaixo:


13) Dando boot novamente com o SELinux já reativado:


Olha que interessante: Com mais serviços startados e com o SELinux funcionando, estou dando boot em aproximadamente 45 segundos. Este tempo é quase idêntico ao tempo quando tinha menos serviços startados e o SELinux estava desabilitado. O tempo anterior era de 41 segundos. A minha placa de rede está com IP fixo e meu modem é quem autentica DSL500B (Isto agiliza as coisas também).

14) Dando boot novamente e deixando somente alguns serviços essenciais para o sistema e desligando o SELinux:

gpm
haldaemon
ip6tables
iptables
irqbalance
kudzu
messagebus
netfs
Network
nfs
portmap
smb
sshd
syslog
vncserver
xinetd

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Conhecendo o bootchart
   3. Verificando os resultados dos testes
   4. Conclusão
Outros artigos deste autor

Recuperando imagem ISO com falha usando JIGDO

Leitura recomendada

UNIX - Definição e História

CUIDADO com o comando "dd", embora muito útil ele pode ser perigoso

MOC - O player de áudio para consoles

LaTeX - Figuras e tabelas

Processos no Linux

  
Comentários
[1] Comentário enviado por rogerio-reis em 30/01/2007 - 09:17h

Legal Antônio,

Muito interessante o artigo, geralmente eu instalo o sistema 'careca' e vou adicionando apenas o que preciso, mas nunca analisei o estado do boot.
Ótima dica.

abcs.,

Rogério Reis

[2] Comentário enviado por ygorth em 30/01/2007 - 10:28h

Excelente artigo. Vou botar em pratica em breve, alguem puxo o freio de mao do meu Slackware. ;p

[3] Comentário enviado por tiagotavares em 30/01/2007 - 12:00h

cacete, que ótimo recurso! Vou botar isto em pratica logo!

[4] Comentário enviado por removido em 30/01/2007 - 12:27h

aqui não gerou o resultado

java.awt.image.RasterFormatException: (x + width) is outside raster
at sun.awt.image.IntegerInterleavedRaster.createWritableChild(IntegerInterleavedRaster.java:450)
at java.awt.image.BufferedImage.getSubimage(BufferedImage.java:1160)
at org.bootchart.renderer.ImageRenderer.render(ImageRenderer.java:636)
at org.bootchart.renderer.PNGRenderer.render(PNGRenderer.java:44)
at org.bootchart.Main.render(Main.java:318)
at org.bootchart.servlet.RenderServlet.doPost(RenderServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

[5] Comentário enviado por antonioclj em 30/01/2007 - 12:33h

Fala Brother. A falha foi gerando quando você mandou o arquivo para o site do bootchart ou quando você tentou gerar o arquivo localmente? Se precisar pode me adicionar no msn antonioclj at gmail.com

[6] Comentário enviado por tenchi em 30/01/2007 - 12:34h

Legal mesmo... NA maioria das vezes, o problema são aquele monte de serviços, apache, mysql.. etc. que deixam a máquina lerda...
Eu uso o KDE, e ele roda normalmente no meu duronzinho 1500 (tá duron de aguentar). O Gkrellm não marca nem 80MB logo após o boot, já no KDE (se bem que o gkrellm é bem pesadinho tbm...).

O boot demora pouco mais que um minuto, e eu acho que isso é até pouco, pra minha máquina... rsrsr...

nota 10.


[7] Comentário enviado por d4rkness em 30/01/2007 - 15:46h

Ótimo artigo e muito útil.

Parabéns.

[]'s

[8] Comentário enviado por y2h4ck em 30/01/2007 - 16:07h

bem legal, parabens.

[9] Comentário enviado por fabianoac em 31/01/2007 - 03:58h

ola... otimo artigo, tive problema no boot do mandriva 2007, passei a usar o debian por causa disso, q vou instalando so o necessario... vo testa esse seu artigo no mandriva e ver o q da. vlw.

[10] Comentário enviado por abeljnr em 31/01/2007 - 14:00h

rsrsr... legal a forma na qual vc se escreveu... hahahhaha


mas vale a pena conferir.;.... ja deu uma olhada geral no micro... tentou instalar outro SO... win por exemplo... so pra fazer um teste por exemplo....

agora.,... se nada disso der certo.... joga fora... rsrsrs

flw ae....

[11] Comentário enviado por brejao em 31/01/2007 - 17:10h

Blz Antonio, vou colocar em prática sua dica... afinal de contas, creio eu q naum temos nada a perder... ;)

[12] Comentário enviado por jalexandre em 31/01/2007 - 20:26h

PQP! Artigo bom e engraçado. Você escreve bem, mantenha o ritmo para os outros artigos. Confesso que comecei a ler o artigo mais pelo titulo curioso do que outra coisa, e acabou me ajudando a detectar alguins problemas que eu tinha em máquinas um pouco antigas.
[ ] 's

[13] Comentário enviado por luiscarlos em 01/02/2007 - 20:38h

ae icarooo , tente o seguinte, java -jar /var/log/bootchart.tgz , pra mim funcionou belezinha e parabens pelo artigo, meu fedora core esta com um tempo de inicialização de 41 segundos, eh ate rapidinho, mas jha fiz iniciarlizar em 32 s certa vez, parabens mais uma vez

[14] Comentário enviado por Rafael-rs em 02/02/2007 - 17:56h

parabns!!! Vou usar essas dicas paramelhorar a performanc do slack, que umildimente roda em um k6-2 500... talvez ele fique uns trinta minutos mais rapido ... hhahahahh

[15] Comentário enviado por nanukano em 06/02/2007 - 20:30h

Achei interessante o seu artigo. Tenho algumas dúvidas: baixei o programa, instalei, alterei o Grub, reiniciei. Enviei o arquivo bootchart.tgz, recebi uma imagem png, mostrando meu boot.
E agora? É só reiniciar que ele tornorá o boot mais rápido? O que devo mudar nos arquivos inicializados? Quais devem ser removidos? Como?
Acho que é importante mostrar o restante dos passos tanto para quem é usuário experiente como para o newbie, ok?

[16] Comentário enviado por antonioclj em 06/02/2007 - 23:36h

Boa noite. O software em questão não é um otimizador e sim um analisador. Você é quem vai ter que verificar o que pode estar causando lentidão. Desligando serviços desnecessários ou atualizando algum serviço lento que seja necessário. Se você usa Fedora utilize setup na linha de comando ou então no menu f vá em sistema->services. Boa sorte.

Antonio Carlos Lemos Júnior

[17] Comentário enviado por nanukano em 07/02/2007 - 09:38h

Valeu, Antonio. Minha dúvida maior é justamente essa, e deve ser a dúvida de muitos iniciantes: quais serviços não são necessários no boot?
No caso veremos quais os seviços que levam mais tempo e, simplesmente, desligá-los, depois tentar o boot e ver o que acontece? Parece que para pessoas sem experiência terá que ser assim, não?

[18] Comentário enviado por antonioclj em 07/02/2007 - 09:59h

Bom dia. Em minha casa os serviços startados são os que estão abaixo:

http://www.eggdisk.com/files/219132_253fp/servicos.txt]servicos.txt

O ideal é procurar na net o que cada serviço faz. Por exemplo o serciço de bluetooth. Como não tenho este serviço aqui desliguei ele no nível 5 que é justamente o modo gráfico. Os outros podem ser desligados também o problema aqui foi preguiça mesmo. :-)

Tem o artigo do Diego que descreve os serviços:
http://www.vivaolinux.com.br/dicas/verDica.php?codigo=2363

Boa sorte.

Antonio Carlos Lemos Júnior

[19] Comentário enviado por shocker em 07/02/2007 - 15:24h

Muito bom o artigo. Bem interessante. Parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts