Como melhoro a velocidade de inicialização?


67

Eu já vi muitos vídeos que tornam o Ubuntu mais rápido, mas esses métodos apenas tornam o desempenho da área de trabalho mais rápido.

Estou procurando acelerar meu computador. É tudo o que posso fazer para tornar a inicialização do Ubuntu significativamente mais rápida?


5
Os sistemas que usam systemd(desde 15.04 IIRC) vêm com a ferramenta systemd-analyzeque pode ajudá-lo a analisar qual processo leva quanto tempo inicializar. Veja man systemd-analyzepara aprender sobre todas as opções, mas provavelmente você vai usar mais systemd-analyze blame.
Byte Commander

@ByteCommander Uma resposta passo a passo fará o trabalho.
Anwar #

Respostas:


28

Geralmente, quanto menos programas você carregar na inicialização, mais rápido o seu sistema deve ser. Experimente o BUM (do centro de software) para desativar alguns serviços desnecessários e verifique também se você não tem nenhum programa desnecessário instalado que será carregado durante a inicialização. Por fim, o uso de uma unidade de estado sólido (SSD) como dispositivo de inicialização deve melhorar significativamente o tempo de inicialização.

Ah, mais uma coisa, seu tipo de sistema de arquivos também faz a diferença. O EXT4 sofreu algumas regressões de desempenho (de acordo com o phoronix), mas ainda achei o EXT4 excelente para inicializar rapidamente.


você pode adicionar qual serviço pode ser desativado, o que não é útil normalmente?
Philippe Gachoud

@PhilippeGachoud Eu realmente não consigo me lembrar agora. Isso é de 2010!
RolandiXor

Estou usando um SSD compatível com versões anteriores e minha placa é SATA. Inicializa loucamente rápido.
usar o seguinte comando

17

Eu acabei de cruzar com isso outro dia. Suas instruções "e4rat" aqui

Este pequeno aplicativo é incrível.

Peguei um processador sempron com AMD de ponto único, esgotado, rodando a 2800+, que normalmente inicializa o Natty entre 1,45 minutos e 27,885 segundos.

Eu tenho os gráficos de inicialização para provar isso. É louco! insira a descrição da imagem aqui


11
Isso realmente ajuda !!!
user12164

Mais pessoas precisam saber sobre o e4rat, é uma ferramenta fantástica que fez a maior melhoria em muitas dicas e truques diferentes.
Victor Bjelkholm

3
Ainda é legítimo para 12.04? Ouvi dizer que causaria problemas com o ureadahead. Isso é verdade?
user138784

@ user138784 como eu entendo, isso ocorre porque o ureadahead funciona tanto como o e4rat, então eles são obviamente conflitos. Mas o e4rat, por algum motivo, parece ser melhor que o ureadahead. Além disso, talvez seja útil - o e4rat, por algum motivo, não funciona por padrão, precisa de alguns ajustes , caso contrário, o arquivo de log não é criado.
Hi-Angel

e4rat não funcionou no 16.04
Anwar

17

Melhorar o tempo de inicialização está altamente relacionado com o serviço de desativação / gerenciamento, mas as respostas atuais carecem de detalhes nos serviços de desativação usados systemd.

O que é systemd?

Em resumo, systemd é um gerenciador de sistemas e serviços para Linux, compatível com scripts de inicialização SysV e LSB. Mais sobre isso pode ser lido na página oficial do projeto .

Verifique quais serviços levam mais tempo

Use o comando a seguir para verificar qual serviço leva mais tempo

systemd-analyze blame

Desativando o Início Automático de Serviços Durante a Inicialização

Se você deseja desativar o início automático de serviços durante a inicialização, pode usar o seguinte comando

sudo systemctl disable some-time-eater-service.service --now

No entanto, convém ver quais outros serviços precisam do serviço em questão. Para verificar, use o seguinte comando

systemctl list-dependencies some-time-eater-service.service --reverse

Nota: Substitua some-time-eater-service.servicepelo nome do serviço real como postgresql@9.5-main.service.

Observe que, desativar a inicialização automática não torna um serviço não inicializável. O serviço pode ser iniciado após a inicialização quando surgir um requisito. Se você deseja desativá-lo completamente, leia a próxima seção

Desativando completamente os serviços.

Se você deseja desativar completamente um serviço para que não possa ser iniciado, use-o em maskvez de desativar. Como isso

sudo systemctl mask <SERVICE-NAME>

Substitua o <SERVICE-NAME>nome real de um serviço

A diferença entre maske disableé a máscara torna um serviço completamente desativado, você não pode iniciá-lo. Você deve unmaskiniciá-lo com systemd (você ainda pode começar com service). Mas disablebasta desativar o início automático de um serviço, você pode iniciá-lo mais tarde.

Por exemplo, Depois de mascarar meu postgresql@9.5-main.serviceserviço, quando eu queria iniciá-lo, systemctla seguinte mensagem é mostrada

Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.

Ferramenta GUI

Uma ferramenta da GUI que particularmente acho interessante é que systemd-managerela ainda está em fase de desenvolvimento e ainda não foi encaminhada para o repositório oficial do Ubuntu. No entanto, você pode instalá-lo facilmente na página do github do Systemd-Manager . As versões contêm um pacote .deb, que é muito fácil de instalar. Você precisa do GTK-3.16 ou superior.

Depois de baixar e instalar, você pode iniciá-lo com o systemd-managercomando Comece.

A aplicação tem duas vistas principais. Uma é Systemd Units e a outra é Systemd Analyse . Você pode trocá-lo com o rótulo no canto superior esquerdo. Veja a captura de tela.

Alternar entre visualizações

E existem três tipos de unidades que você pode gerenciar. Serviços , soquetes e temporizadores . Você pode alternar entre eles. Veja a captura de tela.

Alternar entre tipos de unidades

Exibindo informações

As três guias principais são Arquivos , Diário , Dependências .

  • Arquivos é o arquivo de configuração da unidade selecionada.
  • O diário é a saída do sistema ativo ao ativar / desativar / iniciar / parar unidades
  • Dependências mostra quais outros serviços ou unidades devem ser ativados para iniciar um serviço selecionado.

Indicadores de status

Existem duas colunas ao lado do nome das unidades para indicar o status. O esquerdo indica se essa unidade está ativada para iniciar na inicialização e o direito indica se essa unidade está em execução no momento. Veja-os na foto.

Ativado no status de inicialização

Status em execução no momento

Interruptores de controle

Para acessar o status ativado na inicialização ou em execução, há dois botões do google no canto superior direito. Ativado significa que as unidades serão iniciadas e inicializadas. Veja-os na imagem.

O Toogle alterna para ativar / iniciar

A visão completa do aplicativo é mostrada abaixo

Visualização completa

Espero que isso ajude. Sou beneficiado por outras respostas sobre o systemd, mas realmente precisava reunir as informações em um único local.

Mais informações :

Para saber mais, systemdvisite estes links:

Outras respostas têm sugestões diferentes. Incluindo a compra de SSD, o aumento da RAM, etc. Se você puder pagar, isso definitivamente ajudará, principalmente a sugestão do SSD.


15

Alterne de uma unidade magnética para uma unidade de estado sólido ou uma unidade híbrida magnética e de estado sólido. Isso tornará qualquer inicialização do sistema operacional muito mais rápida. As unidades híbridas não são muito mais caras. Se você não quiser ir tão longe, obtenha um disco rígido de 7200 ou 10K RPM.


6
A velocidade do disco é o atual gargalo de inicialização.
#

@scottl, considerando que meus discos são SATA e meu tempo de inicialização é semelhante aos 1:45 minutos relatados por @RobinJ, duvido que haja alguma razão para apontar o desempenho do disco em particular. No entanto, o que vejo é que a montagem de discos e compartilhamentos é feita de maneira síncrona, apesar de 1.) usar fastboote 2.) esses discos não serem importantes para o processo de inicialização.
0xC0000022L 27/11

13

Eu suponho que você está falando sobre o Ubuntu 11.04?
Eu tenho tentado isso por um longo tempo agora, sem muito sucesso. De qualquer forma, essas etapas fizeram alguns segundos de diferença:

1. Removendo pacotes desnecessários

apt-get purge brltty brltty-x11 foo2zjs min12xxw ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-unfonts-core

2. Usando ambos os núcleos / CPU durante o processo de inicialização

APENAS FAÇA ISSO SE ESTIVER CERTO DE QUE SEU COMPUTADOR TEM MÚLTIPLOS CPU / CORES!
Abra /etc/init.d/rc(você precisará de privilégios de root) e substitua CONCURRENCY=nonepor CONCURRENCY=shell. Salve o arquivo.

Atualizar

"CONCURRENCY = shell agora está obsoleto e é alias de 'makefile'. Desde 14/05/2010, o padrão é 'makefile'."    ~ Jonathon

3. Desativando daemons desnecessários

Isso é um pouco mais avançado, portanto, é melhor não fazer isso se você não souber o que isso significa. Instale bume inicie-o com privilégios de root. Em seguida, desmarque as caixas na frente dos daemons de que você não precisa. Por exemplo, quando você não possui um scanner, pode desativar saned. E se você nunca usar o bluetooth, poderá desativar bluetoothtambém.
Quando terminar, clique no botão Aplicar e clique em sim ou não (isso não importa muito).

Após concluir estas etapas, reinicie duas vezes . Por algum motivo, a primeira reinicialização após alterar todas essas opções leva muito mais tempo que as outras, mas você deve notar alguma diferença durante a segunda reinicialização.


3
CONCURRENCY = shell agora está obsoleto e é alias para 'makefile'. Desde 14-05-2010, o padrão é 'makefile'.
21413 Jonathon

É possível listar (ou dar uma breve explicação) quais pacotes você aconselha a remover? (primeiro ponto na sua explicação). Sempre mente que há pessoas que simplesmente fazer copy-paste e, de repente, são incapazes de ler a partir etc. terminais
Willem Van Onsem

11
@CommuSoft Como essa resposta é sobre o Ubuntu 11.04 de qualquer maneira, seria desaconselhável aplicar a mesma resposta às versões mais recentes. Algumas dessas coisas não funcionarão mais, e outras coisas podem quebrar o sistema.
precisa saber é

9

Use o gráfico de inicialização para produzir gráficos detalhados do que leva tempo durante a inicialização. Isso pode ajudar a decidir o que ajustar ou remover. Em https://wiki.ubuntu.com/BootCharting :

  • Instalar os Bootchart e pybootchartgui pacotes, seja através de apt-get ou Synaptic
  • Reinicie sua máquina
  • O bootchart está em / var / log / bootchart como um arquivo .png

O equivalente moderno é coberto aqui askubuntu.com/a/763070/178596
Wilf


3

Minha máquina inicializou MUITO mais rápido se eu fizesse uma instalação alternativa e adicionei os pacotes da GUI manualmente. É claro, isso apenas tira coisas de que não preciso e que sou capaz de me adicionar. Se você voltar com "como compilar / instalar aplicativos X, Y e Z", isso pode não ser uma boa idéia.


3

Para qualquer outra pessoa que esteja lutando com isso, basta instalar o BUM e iniciá-lo como usuário root (tenha cuidado ao usar o gksudo em vez do sudo normal). Em seguida, desmarque o serviço que você deseja desativar (desativei o Apache2, o PostGreSQL daemon, o MySQL, a caixa virtual e outros) e é isso! Você pode excluir o serviço completamente se não o desejar, mas desabilitá-lo é mais que suficiente.

sudo apt-get install bum

insira a descrição da imagem aqui



2

Editar 25.10.2016: Se você não usar a hibernação porque não pode ou prefere suspender / S3, pode desativá-lo no Grub adicionando noresumeao GRUB_CMDLINE_LINUX_DEFAULTin /etc/default/grube executando update-grub. Aqui está um exemplo em um Chromebook N22 executando o GalliumOS:

livewire@zc01:~$ systemd-analyze
Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s

livewire@zc01:~$ systemd-analyze
Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s

Eu descobri isso porque estava curioso sobre a parte "Executando scripts local-premount" durante a inicialização e investiguei um pouco no initramfs, o que me levou a essa opção, que eu só usava anteriormente quando meu sistema não conseguia sair da hibernação.


Edite 06.08.2016: Você deve atualizar para uma versão recente da sua distribuição Linux que acompanha o systemd.


Ingredientes:

  • Obtenha um sistema UEFI com código UEFI livre de inchaço ou Coreboot
  • Obter um SSD
  • Instale o Ubuntu no modo UEFI
  • Bônus: Comprima initramfs com xz lzop e inclua apenas os módulos necessários. (Você realmente deve saber o que está fazendo antes de tentar fazer isso.)
  • Bônus: remova daemons desnecessários ou configure-os para iniciar mais rapidamente. Embora a instalação padrão já seja boa o suficiente.
    • Exemplo: trabalho de inicialização do btrfs que está procurando conjuntos para montar enquanto não há volumes btrfs neste dispositivo. Isso me fez remover o btrfs-tools de algumas das minhas instalações.

Eu tenho que dizer que 32 segundos é realmente bom o suficiente. Não ficará muito mais rápido com o hardware tradicional. Meu novo Lenovo T530 leva a mesma quantidade de tempo para inicializar no modo legado. Com o novo micro SSD que instalei recentemente e o Ubuntu no modo UEFI, é necessário 15 segundos para pressionar o botão liga / desliga para fazer o login. Ainda parece que está perdendo 5 segundos durante a postagem, mas absolutamente não está perdendo tempo iniciando o sistema operacional real. O micro SSD tem velocidades de transferência de 280 MB / s, pode ser um SSD de 500 MB / s, podendo chegar a 7 segundos. Mas cabe aos fabricantes reduzir o tempo de inicialização pré-SO (POST e o que não).

Em relação ao perfil de inicialização e simultaneidade do shell. Essas informações podem ser vistas como datadas ou eventualmente como mitos. Lembro que o perfil de inicialização automático ou algo que tornou o perfil de inicialização absolutamente supérfluo foi adicionado ao Linux ou ao sistema principal anos atrás, desde então, não usei mais o perfil de inicialização depois que um novo pacote do kernel foi instalado. A configuração de simultaneidade do shell quebrou as coisas, mas com o Systemd e o Upstart também deve ser supérfluo e não deve ter efeito positivo.


1

O Garbagecollector está certo. Prossiga com cuidado. Mas alguns dos programas que você pode desativar com segurança são utilitários de pop-up de email, como o Evolution, especialmente se você não estiver usando o Evolution no início. Além disso, qualquer coisa relacionada à impressão pode ser desativada se você não imprimir. O mesmo para o Wireless se você estiver conectado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.