A área de trabalho do Ubuntu 12.04 carrega muito devagar após a entrada da senha

4

Bem, eu tenho um Ubuntu 12.04 rodando em um laptop Core i7, com um disco SSD. O laptop é um dual-boot. Eu tenho um atraso muito grande entre a entrada de senha e a área de trabalho exibida. Em geral, o processo é assim:

  • O carregamento do Grub é rápido.
  • Eu escolho o Ubuntu da lista.
  • O prompt de senha é carregado rapidamente.
  • Eu insiro a senha do meu usuário. O computador meio que trava. O Wifi está piscando, mas a luz do disco rígido não está piscando muito. Isso leva cerca de 30 a 40 segundos.
  • A área de trabalho é carregada em um flash

Eu já experimentei esse problema no passado, com meu HDD padrão. Então eu removi o UbuntuOne como recomendado em um tópico que eu vi. Isso parece ter ajudado por um tempo. Então eu migrei para o SSD. O computador carregado muito rápido por um tempo, então isso começou a acontecer. Eu não acho que isso esteja relacionado ao SSD, no entanto.

Estou adicionando um link para uma imagem de bootchart:

link

=======================

Enquanto resolvia isso, percebi que meu nome de usuário aparece como [UTF-8 inválido] no canto superior direito da tela. Esses são os casos em que a área de trabalho é carregada com um atraso.

Às vezes, a área de trabalho consegue carregar rapidamente. Neste caso, o nome de usuário é mostrado normalmente.

O [UTF-8 inválido] parece ser um bug conhecido, mas não consegui encontrar uma solução de trabalho.

Obrigado pelo seu tempo.

=============================

Acabei de reinstalar completamente o sistema operacional. Isso resolveu o problema.

    
por EliasP 26.09.2013 / 08:12

1 resposta

2

Aqui está um Blog de "George Georgovassilis" que tem mais algumas dicas sobre como ler o gráfico de inicialização e como acelerar as coisas ...

Medindo o progresso

O Bootchart é um pacote interessante que protocolos meticulosamente o processo de inicialização inteiro e cria gráficos gráficos dos tempos e onde eles são gastos. Então, o primeiro passo é obter o bootchart:

sudo apt-get install bootchart

Após a reinicialização, você pode obter o gráfico acima em /var/log/bootchart . Uma palavra de cautela: o primeiro gráfico é não representativo, já que o ureadahead está no modo de criação de perfil e retarda as coisas. Depois de outra reinicialização, o gráfico ficaria muito melhor. E é assim que parece:

O gráfico mostra três etapas: o gerenciador do X-Window inicia aos 19 segundos após a inicialização, o Gnome a 41segundos e a área de trabalho é visível em 59 segundos, o que considerarei também todo o tempo da inicialização. Essa é a hora de vencer.

Paralelização do Ureadahead

O Ureadahead demora cerca de 10 segundos para concluir o preenchimento do cache. Durante esse período, nada mais é carregado. Isso faz sentido para um disco rígido rotacional regular, já que os movimentos freqüentes da cabeça, induzidos por processos que iniciam em paralelo, retardariam as coisas. Mas como esta instalação está sendo inicializada a partir de um cartão SD, pode valer a pena explorar uma maneira de executar o ureadahead em paralelo. Minha primeira sugestão foi colocar o ureadahead em um script e lançá-lo em segundo plano:

/etc/init.d/bootopts

#!/bin/sh
(/sbin/ureadahead --daemon)&

e altere /etc/init/ureadahead.conf para chamar este script em vez de /sbin/ureadahead

A reinicialização é 3 segundos mais rápida, obtida entre a inicialização do X e a inicialização do Gnome. Lamentavelmente, o novo gráfico mostra que o ureadahead ainda está sendo executado seqüencialmente, atrasando tudo depois dele. Algumas investigações mostram que o agendador de I / O acha que o cartão SD é um dispositivo rotacional, então estou alterando o script bootopts para corrigir isso adicionando:

echo 0 > /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/host6/target6:0:0/6:0:0:0/block/sdb/queue/rotational

Observe que o cartão SD é /dev/sdb

Após a reinicialização, o gráfico se parece com isto:

Muito melhor, o ureadahead funciona agora em paralelo. Infelizmente, o processo de inicialização ficou 1 segundo mais lento, atrasando principalmente o X e o Gnome. Mas eu sinto que estou em algo, então não vamos desistir.

Ajustando o flashcard readahead

Alguns bechmarks com um simples hdparm -t -T no cartão de memória flash mostram que um tempo de leitura sequencial com 14 MB / seg, portanto, 2 MB / seg é inferior à sua classificação nominal. O motivo parece ser uma configuração de leitura antecipada de 256, reduzindo-a para 128 e obtendo o máximo de 16 MB / s. Assim, outra adição ao meu script bootot:

hdparm -a128 /dev/sdb 

Corrigindo o agendador de E / S

Outra reinicialização depois, estou de volta aos 56 segundos. Eu suspeito que o agendador de I / O dá ureadahead a mesma prioridade que a outros processos, o que realmente não deveria, por isso deve ser escondido por trás de um ionice, assim eu modifico bootot:

(/usr/bin/ionice -c 3 /sbin/ureadahead --daemon)&

Isso melhora o tempo de inicialização por mais 2 segundos. O gráfico revela que o cartão flash ainda não é utilizado totalmente, então eu sigo estas instruções para desabilitar o registro no diário na partição de inicialização e também desabilito o plymouthd que é a tela de inicialização animada. E isso faz o truque, o tempo agora é de 45 segundos:

[atualização 2011.05.22] Também fiz uma experiência na direção oposta, a saber, iniciar ionice com -c 1 que corresponde a E / S em tempo real que reduziu o tempo de inicialização em outro segundo. Embora, a princípio, isso pareça ser contra-intuitivo, já que menos processos podem rodar em paralelo, a um segundo olhar faz sentido, porque a E / S paralela apresenta alguma sobrecarga.

Adiando serviços

Agora vamos adiar serviços não necessários para o processo de inicialização após o login. Meus candidatos:

mysqld
nmbd
smbd
cupsd
modem-manager
bluetoothd
alsa-store [update 2011.05.22]
alsa-restore [update 2011.05.22]
pulseaudio [update 2011.05.22]
rsync [update 2011.05.22]
apparmor - I apt-get removed that one [update 2011.05.22]
plymouthd [update 2011.05.22] I deleted the /etc/init/plymouthd*.conf files - arguably this will affect logging and the ability of services to interact with the user in case something goes wrong. Use at your own risk
ufw (firewall, there is a small security risk when setting up later) [update 2011.05.22]
acpi-support 

Todos eles têm trabalhos iniciantes e podem ser adiados alterando o evento inicial nos respectivos arquivos /etc/init/xyz.conf para algo como "coisas que podem esperar". apport [update 2011.07.07]

Um novo script em /etc/init.d/stuff-that-can-wait pode então executar esses scripts. O meu parece assim:

#!/bin/sh

/etc/init.d/mysql 
/etc/init.d/samba 
/etc/init.d/acpi-support 

E, claro, não esquecer:

chmod a+x /etc/init.d/stuff-that-can-wait

Eu o adicionei como um script iniciante, mas é provavelmente mais fácil adicioná-lo como um script de inicialização para a sessão do gnome ("Startup Applications")

Em seguida, removi serviços semelhantes de /etc/rcX.d com este comando:

update-rc.d -f servicename remove

e configurá-los como scripts upstart ( stuff-that-can-wait )

Executando scripts init em paralelo

Nice post aqui [atualização 2011.05.22] A essência é modificar /etc/init.d/rc para

CONCURRENCY=shell

Testando as ferramentas do modo laptop [atualização 2011.05.22]

Há mais a ser feito: perto do final da seqüência de inicialização, o bootchart mostra uma longa espera (12 segundos) localizada em /usr/lib/pm-utils/power.d/journal-commit. Estou modificando esse arquivo como tal:

#!/bin/sh
exit0

(Eu provavelmente poderia ter deletado)

Este não apenas reduziu em 10 segundos o bootchart, mas também o Unity Desktop ficou visivelmente mais rápido.

Há também pulseaudio começando muito antes do que deveria (consulte Adiando serviços)

Módulos de lista negra [atualização 2011.07.07]

Esta etapa elimina os módulos desnecessários (para minha configuração). Edite /etc/modprobe.d/blacklist.conf e anexe as linhas

blacklist rt2800pci
blacklist rt2x00pci
blacklist parport_pc
blacklist vboxnetado
blacklist vboxnetflt
blacklist bvoxdrv
blacklist joydev
blacklist lp
blacklist hp_accel

e comente o lp module em /etc/modules

O que nos deixa com 28 segundos de inicialização:

copiado e editado aqui & amp; rightarrow; link

Espero que isso ajude ... Boa sorte!

    
por SoCalDiegoRob 26.09.2013 / 08:56

Tags