Como deixar o sistema enxuto (e sem Snaps!) ao ponto de consumir meros 100 Mb de RAM, ideal para Raspberry Pi 3 ou qualquer outro computador.
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
1. Introdução
Já ensinei no canal como instalar o Ubuntu Server 24.04 LTS:
Como otimizar o Ubuntu Server, deixá-lo enxuto? De que maneiras posso fazer o sistema da Canonical ficar absurdamente eficiente em consumo de hardware mas sem perder seus recursos mais importantes?
Os comandos e dicas abaixo servem tanto para o 22.04 quanto para o 24.04
2. Remoção de Pacotes
Antes de continuar, após instalar o sistema a primeira coisa que você precisa é remover os pacotes menos importantes. Assim quando der apt update e apt upgrade ele não vai perder tempo instalando pacotes que serão removidos depois. Os pacotes que recomendo remover são:
- needrestart
Esse é serviço que te avisa “precisa reiniciar tais serviços” após atualizar. Foi introduzido se não me engano no Ubuntu 22.04 e não é algo tão fundamental para servidores domésticos e/ou para pequenas empresas. Se algo precisar ser reiniciado, um simples reinício da máquina toda basta, jogo rápido. - cloud-init
Quem cria imagens customizadas do Ubuntu ou ainda provisiona dezenas de bare-metais vai precisar dele; mas pro usuário comum que quer rodar um Docker em Raspberry Pi? Pode tirar. Ele consome RAM e CPU para algo que não será usado. - snapd
Até o Ubuntu 24.04 LTS (e data desta publicação) não tem qualquer pacote Snap no sistema recém instalado. Pode remover o aplicativo snapd totalmente!
Ele vai voltar caso você queira um servidor com interface de usuário e instale algo como o Chromium. Então atentos aos pacotes que instalar.
Em essencia a maioria dos pacotes CLI como o docker.io e o SAMBA funcionarão sem dependências com Snaps. - unattended-upgrades
Esse serviço fica rodando 24h em background “atualizando” seu servidor sem seu consentimento. Promete trazer atualizações de segurança imediatamente e de forma automática. Na prática, trava o “apt” e várias vezes eu precisei instalar um pacote e tive que aguardar a boa vontade do unatended-upgrades. Detalhe: ele costuma ser lento nas requisições, muito mais lento que o apt tradicional. - bluez
- blueman
- bluetooth
São os serviços de bluetooth, se não me engano eles não vem por padrão mas caso venham e você não for usar, tire! - avahi-daemon
Esse serviço tecnicamente é pra encontrar dispositivos automaticamente na rede como impressoras. Se não for seu caso, tire. - lvm2
O lvm2 é o gestor de volumes llvm, se não for usar, tire! - update-notifier-common
Esse pequeno serviço te notifica que tem atualizações novas a serem feitas logo que faz login e visualiza o motd. - apport
- apport-symptoms
São o serviço de envio de notificações de erros, no server eu nunca vi funcionando e não senti falta quando tirei. - wpasupplicant
Caso não for usar o Wifi, tire. - apparmor
Sistema interno de segurança do Ubuntu, esse aqui é para um caso extremo que você quer enxugar memória e já ficou sem ideias do que remover. - ufw
Firewall do Ubuntu, removê-lo vai apenas expor toda e qualquer porta/serviço na rede. O faça se realmente quer enxugar o sistema!
Então os comandos ficam:
$ sudo apt purge needrestart cloud-init snapd unattended-upgrades plank deja-dup evolution evolution-data-server bluez blueman bluetooth avahi-daemon lvm2 update-notifier-common apport apport-symptoms wpasupplicant apparmor ufw network-manager
$ sudo apt autoremove
Dê apt update e upgrade normalmente a partir disso para dar sequência e otimizar o Ubuntu Server.
3. Desativando Serviços
Além de remover pacotes, tem serviços que seria interessante desligar para otimizar o Ubuntu Server:
- systemd-networkd-wait-online.service
Esse serviço espera que a rede seja estabelecida antes de continuar o processo de boot. O problema?
Isso pode demorar até 1 minuto e meio sem justificativa. Desativo sempre, nunca fez falta. - apt-daily.timer
- apt-daily-upgrade.timer
É como um “apt update” automático diário. Eu não vi vantagem manter se o “apt update” é necessário de todo modo. - e2scrub_all.timer
- e2scrub_reap.service
Esse serviço verifica por erros no sistema de arquivos ext2, ext3 e ext4. Se usa BTRFS ou não faz questão dessa rotina, remova.
Então os comandos ficam:
$ sudo systemctl disable systemd-networkd-wait-online.service apt-daily.timer apt-daily-upgrade.timer e2scrub_all.timer e2scrub_reap.service
$ sudo systemctl mask systemd-networkd-wait-online.service apt-daily.timer apt-daily-upgrade.timer e2scrub_all.timer e2scrub_reap.service
Caso precise do NetworkManager em vez do systemd-network, também desative:
$ sudo systemctl disable NetworkManager-wait-online.service; sudo systemctl mask NetworkManager-wait-online.service
Esse serviço também espera que a rede seja estabelecida antes de continuar o processo de boot. Isso pode demorar até 1 minuto e meio sem justificativa. Desativo sempre, nunca fez falta.
4. Tweaks
Ajustes finos de otimização para otimizar o Ubuntu Server. Adicione ao arquivo /etc/sysctl.conf as seguintes linhas:
# Habilita o REISUB.
kernel.sysrq=1
# Se ficar sem memória livre, cause um kernel panic.
vm.panic_on_oom=1
# Se ocorrer kernel panic, reinicie o sistema.
kernel.panic=5
# Swap será usada somente se tiver 10% livre, 90% de uso
vm.swappiness=10
Já ao /etc/fstab adicione ao final:
# Montar as pastas /tmp e /var/tmp na RAM, consumirá mais RAM mas aliviará o uso de disco/SSD.
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
5. Conclusão
E é isso.
Ah mas porque não usar logo Debian que é mais enxuto?
Porque o Ubuntu tem um repositório mais completo com a possibilidade de adicionar PPA’s sem burocracias, o netplan é incrível pra dar manutenções de rede, entre outros ajustes de fábrica, como a existência do ufw em detrimento ao firewalld do Debian. Otimizações que fazem falta.
É mais fácil enxugar um Ubuntu do que enriquecer um Debian.
No fim você chegará em algo próximo disso:
E ai, conhecia algumas dessas dicas e otimizações?
Deixe nos comentários se tiver alguma dica de como otimizar o Ubuntu Server!
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.