Como depurar o início lento da sessão do Gnome 3?

5

Após a atualização de 11,10 a 12,04, o processo de login do Gnome 3 é extremamente lento (leva na ordem de 60 segundos quando estava na ordem de alguns segundos antes da atualização (o disco rígido é um SSD!)).

A execução de "top" em um VT mostra que o gnome-shell está produzindo cerca de 90% da carga da CPU, enquanto o dbus-daemon está levando aproximadamente 10%. O momento em que a carga de CPU do gnome-shell cai para níveis normais (cerca de 2-3%) corresponde ao tempo que o processo de login é finalizado e a área de trabalho é exibida.

A desativação das quatro extensões do shell do gnome (Menu de Status Alternativo, Botão Sair, Remover Acessibilidade, monitor do sistema) que eu instalei não tem nenhum efeito no tempo de inicialização da sessão.

O login no Gnome classic não mostra o início lento da sessão.

Os registros do sistema não mostram nada de suspeito. Assim, qual é a melhor maneira de identificar o problema subjacente?

    
por user65521 04.07.2012 / 10:32

4 respostas

2

Eu tive um problema semelhante e fixei-o no sistema de contatos - eu fiz isso executando strace -p no processo do gnome-shell e procurando pelo conteúdo das chamadas do sistema.

Dou a minha solução eventual na minha entrada de blog aqui . Espero que ajude!

--- /usr/share/gnome-shell/js/ui/overview-dist.js   2012-07-20 13:12:23.564769756 -0700
+++ /usr/share/gnome-shell/js/ui/overview.js    2012-07-20 16:40:14.076527986 -0700
@@ -210,7 +210,7 @@
         this.addSearchProvider(new AppDisplay.AppSearchProvider());
         this.addSearchProvider(new AppDisplay.SettingsSearchProvider());
         this.addSearchProvider(new PlaceDisplay.PlaceSearchProvider());
-        this.addSearchProvider(new ContactDisplay.ContactSearchProvider());
+        // this.addSearchProvider(new ContactDisplay.ContactSearchProvider());

         // Load remote search providers provided by applications
         RemoteSearch.loadRemoteSearchProviders(Lang.bind(this, this.addSearchProvider));
    
por Danny O'Brien 23.07.2012 / 21:55
2

Eu sei que esta questão é antiga, mas aparece perto do topo dos resultados do Google, por isso pensei em dar uma resposta à pergunta no título -

Uma maneira de identificar o problema funciona assim:

Comece a fazer login na sua sessão, mas também tenha outra sessão (como outro usuário ou em uma sessão "tty" (Control + Alt + [F2…]), ou via ssh, ou…) já aberta, com um prompt de shell de texto (bash) pronto.

Digite (mas não pressione Return ainda) este comando:

  • talvez seja necessário sudo este comando se o outro shell for uma conta de usuário diferente
  • Esta é uma linha longa

gdb attach /usr/bin/gnome-shell $(pgrep -u seu login gnome-shell) -ex 'call gjs_dumpstack ()'

por exemplo. gdb attach /usr/bin/gnome-shell $(pgrep -u jdoe gnome-shell) -ex 'call gjs_dumpstack ()'

Assim que o shell estiver "muito ocupado", ou seja, "pegue-o em flagrante", no outro shell, pressione Return para capturá-lo. Ele irá congelar o shell e pode matar sua tentativa de login, mas você terá seu backtrace.

Você receberá um banner de boas-vindas do depurador. (Você também pode ser informado de que precisa instalar alguns pacotes debuginfo, pelo menos no Fedora, não tenho certeza se o Ubuntu fará o mesmo, mas presumo que seja semelhante. Você não precisa realmente deles para depurar o lado do JavaScript das coisas; isso se aplica apenas à depuração da parte C do código.)

Isso mostrará a pilha de funções JavaScript ativas, que quase certamente mostrarão o culpado.

Você pode encontrar informações mais detalhadas aqui: link

    
por BRFennPocock 16.07.2014 / 18:47
1

Você tem muitas fotos e usa o Nautilus? Talvez você seja afetado pelo LaunchPad Bug 505085 - uso extensivo de disco do gnome-settings-daemon Veja o comentário 13 ou 18 para soluções alternativas.

    
por shaddow 23.07.2012 / 23:02
0

eu tive o mesmo problema e não sabia como depurar. mas eu desativei todas as extensões do shell do gnome e então funcionou perfeitamente. Eu sei que esta não é a resposta exata para a pergunta, mas pode ajudar outras pessoas com problemas semelhantes (login lento para o gnome 3 sessão)

você pode desativar um por um para descobrir qual extensão cria o problema - ou você desativa tudo e ativa um por um novamente;)

    
por mgafner 12.03.2014 / 09:43

Tags