Otimizando Linux para Computadores Lentos
Otimizando Linux para Computadores Lentos
Otimizando Linux para Computadores Lentos
Tenho pesquisado muito sobre Linux na área de trabalho esses dias, como você
pode ver em minhas postagens sobre Fedora 25 e Arch Linux (recomendado!).
Existem algumas coisas que você deve ter em mente ao migrar para sistemas
Linux.
Mesmo se você tiver um Intel Core i7 Kaby Lake topo de linha, 32 GB de RAM e 2
TB M.2 SSDs, você ainda pode se beneficiar das otimizações de que falarei.
Mas em um Desktop você não quer isso. Por exemplo, você está copiando um
arquivo de 20 GB para o seu pen drive USB antigo, ou está descompactando um
arquivo grande, ou está compilando aquele grande pacote da fonte, ou deixa o
Dropbox em segundo plano sincronizando gigabytes de arquivos de seus
servidores. Ou você está fazendo "nada" (pelo menos em primeiro plano, mas o
Gnome Tracker está indexando fortemente seus arquivos em segundo plano) e seu
ambiente trava, trava por alguns segundos e continua fazendo isso de vez em
quando.
E você fica se perguntando por que o Linux é tão ruim em comparação com o
Windows ou macOS, onde você não vê o mesmo comportamento em hardware
semelhante.
Estar em tempo real não significa "computar super rápido", significa "ser previsível".
Se algo precisa acontecer em uma certa frequência, não importa se cada ciclo leva
1 segundo, desde que demore consistentemente o mesmo 1 segundo - em todos os
prazos. Se você tem uma máquina "rápida" que calcula mais rápido em 10
milissegundos a cada ciclo, mas de vez em quando, trava aleatoriamente por alguns
segundos, isso não é em tempo real. E para a criação de mídia, é um desastre.
Existe o tempo real difícil, onde um pico ou vale pode ser considerado uma falha
catastrópica, e o tempo real suave, onde você pode lidar com alguns picos, mas não
tanto. Requisitos difíceis de tempo real são raros, a menos que você esteja
desenvolvendo sistemas para usinas nucleares, você pode perder alguns prazos.
Você também descobrirá que existem nichos de profissionais com distros especiais
apenas para gravação e edição de áudio, por exemplo AVLinux ou KXStudio .
Mas você não precisa usar uma distro específica de áudio ou um kernel rígido em
tempo real. As distros críticas de áudio não usam o PulseAudio, mas os usuários
normais não ficarão tão preocupados com isso. Podemos ajustá-lo para encontrar
um bom equilíbrio entre capacidade de resposta e desempenho. Se você realmente
quer ir para o núcleo duro, você pode querer ler o Linux Audio Wiki em Tempo
Real , mas está fora do escopo deste artigo.
A CPU geralmente não é um gargalo sério, a menos que você esteja fazendo
cálculos realmente intensivos, como compressão de vídeo, ciências de dados,
genética, redes neurais, etc.
A GPU também raramente é um gargalo, a menos que você esteja fazendo jogos
pesados ou renderizações em 4K. Na maioria das vezes você realmente não
precisa de uma GTX 1080 de US $ 7000 dedicada.
A propósito, isso não é necessário para a maioria dos sistemas, mas apenas para
garantir a segurança, faça o seguinte:
Se você tentar medir os usos da CPU e GPU, perceberá que na maioria das vezes
eles estão realmente ociosos! Isso mesmo, você está subutilizando principalmente
os núcleos da máquina.
RAM vs SWAP
Agora, você está abrindo seu navegador Chromium brilhante. Qualquer pessoa que
brincar por alguns minutos abrirá em média uma dúzia ou mais de guias, sem suar a
camisa.
É muito fácil consumir todos os 8 GB de uma máquina comum. Sempre que isso
acontecer, o sistema operacional terá que começar a descarregar os dados no
disco, o que é muito lento.
A primeira coisa que você pode querer fazer é instalar uma extensão como The
Great Suspender . Ele simplesmente fechará todas as guias, exceto a que você está
lendo agora. Quando você mudar para outra guia, ela será recarregada. O efeito é
que você não está usando RAM se realmente não precisar.
Esta extensão sozinha pode economizar alguns GIGABYTES de RAM, o que não é
pouca coisa se você tiver 8 GB ou menos.
Se você não quiser reiniciar agora, você pode executar isso em um Terminal:
Não vá longe demais no ajuste, por exemplo, nunca desative o diário do sistema de
arquivos. Ele aumenta o desempenho com o risco de colocar seus dados em risco
de corrupção.
Schedulers
Por que o "Linux não estava pronto para o desktop" anos atrás?
Porque demorou muitos anos para finalmente começar a lidar com baixa latência,
troca de thread de baixo custo e melhor programação. Você tem que agradecer a
Con Kolivas , Ingo Molnár, Thomas Gleixner . O desenvolvimento do kernel Linux é
conhecido por ser muito difícil de lidar e Con Kolivas é uma de suas vítimas, mas
seu trabalho continua vivo para nos permitir ter melhores experiências de desktop
atualmente.
Mas se você tiver que usar discos rígidos mecânicos, especialmente os antigos e
superlentos de 5.400 rpm, você vai querer gerenciar a fila de E / S com eficiência,
tocando as placas giratórias o mínimo possível. E neste caso, você realmente vai
querer usar algo como BFQ (ou pelo menos deixar no CFQ padrão).
No exemplo acima, você verá que [bfq]é o ativo, mas você pode alterá-lo
instantaneamente para testá-lo, se desejar.
Para aproveitar as vantagens dos agendadores mais recentes para otimizar melhor
os computadores lentos, sua melhor aposta é instalar o kernel Zen do Linux, uma
versão do Liquorix . Inclui o agendador MuQSS em vez de CFS e BFQ em vez de
CFQ, ao mesmo tempo que adiciona mais ajustes para responsividade como QoS
adequado sobre TCP para evitar congestionamento de TCP.
Sempre ouvi dizer que GNOME e até KDE são muito lentos, você deve apenas usar
XFCE (ou LXQt, ou MATE).
E sempre me pareceu uma daquelas coisas que as pessoas ficam repetindo até que
se torne o cânone oficial.
Como engenheiro, não gosto de pensar assim. Desafiar o cânone é mais parecido
com o que um engenheiro deve fazer.
Novamente, você deve entender o que está acontecendo. A primeira coisa que você
deve instalar é htop e iotop . O primeiro é bom para ver quais processos em
execução em segundo plano podem estar consumindo sua CPU ou RAM. O
segundo é bom para ver quais processos estão inchando suas filas de E / S fazendo
operações de arquivo / rede em segundo plano.
O Dropbox é opcional, mas a maioria das pessoas hoje em dia o usa. Fora da caixa,
ele é um monstro hidioso, um dos piores softwares com o qual você é obrigado a
conviver.
Na primeira vez que você instalar e tiver que baixar tudo, sua máquina vai cair de
joelhos. Nada a ver com isso, apenas lembre-se de instalá-lo na sexta à noite e
deixá-lo funcionando no escritório no fim de semana.
Então, existe o Tracker . O objetivo desta ferramenta é indexar seus arquivos para
que você possa pesquisá-los de forma rápida e fácil por meio de aplicativos
GNOME, como o Gerenciador de Arquivos Nautilus.
Novamente, a primeira vez que você instalar seu novo ambiente GNOME, será
muito caro construir a primeira passagem de índice, especialmente se você estiver
baixando toneladas de arquivos do Dropbox. Faça isso em uma sexta à noite!
Mas você também deve ajustá-lo para funcionar apenas quando o sistema estiver
ocioso. Execute Alt-F2 e digite tracker-preferences, em seguida, configure-o
para ficar assim:
No mesmo applet, configure-o também para ignorar logdiretórios e *.logpadrões
de arquivo!
Apenas essas 2 coisas devem tornar sua máquina muito mais responsiva ao usar
acionamentos mecânicos lentos. Percebi que gnome-photoscontinua rodando em
segundo plano e consumindo algum I / O, provavelmente está tentando sincronizar
suas fotos online do Google se você definir contas online do GNOME .
Dropbox, Tracker, Gnome-Photos farão com que sua experiência inicial seja
péssima. Mas se você tiver paciência - e uma conexão rápida com a Internet - eles
devem se acalmar após a pesada sincronização inicial.
1 gnome-session
2 gnome-shell
3 gnome-settings-daemon
4 gnome-online-accounts
5 evolution-data-server
6 gjs-console
A propósito, se você instalar o XFCE junto com o GNOME, ficará surpreso ao saber
que muitos dos mesmos serviços de segundo plano serão inicializados em segundo
plano! Instale um ou outro, não ambos no mesmo sistema.
Por outro lado, uma instalação simples do Arch com o conjunto de pacotes XFCE4
iniciará consumindo cerca de 150 MB de RAM !! Mas é claro, você perde todas as
sutilezas que vêm pré-instaladas com o GNOME. E também, é claro: você inicia o
Chromium, abre algumas guias e lá se vai toda a RAM de qualquer maneira.
Você executará aplicativos muito piores em primeiro plano. Por exemplo, Spotify,
Franz, Atom, para citar alguns. Se for um aplicativo híbrido que carrega um
navegador para carregar um aplicativo da web, será pesado.
Resumo
Quando instalei o Fedora 25 e o Arch Linux, senti que eles estavam lentos. Quando
usei o Ubuntu 14.04 por meses em um hardware melhor, também o achei lento em
comparação ao macOS em um hardware semelhante, mas nunca tentei esse nível
de ajuste antes.
Resumindo: se você puder, compre um bom SSD. Se você tem PCI Express x4,
faça ainda melhor e compre um SSD M.2 como o Samsung 950 EVO M.2 . A melhor
coisa que você pode fazer é ter mais de 8GB de RAM (16GB sendo um bom ponto
ideal) e um SSD muito rápido (de preferência com um BUS que não sofra de
gargalos do SATA 3).
Com todos os ajustes e ajustes, estou feliz em informar que minha velha torre
Lenovo está funcionando tão bem quanto pode, sendo responsiva o suficiente
mesmo em cargas mais altas, com este disco rígido mecânico lento. E como um
bônus, se você escolher permanecer no GNOME 3, instale o bom tema Flat Plat ,
fortemente inspirado no Material Design, e os conjuntos de ícones Paper ou Moka .