Otimizando a Distribuição Gentoo

Diferente das distribuições tradicionais como Ubuntu e Arch, Gentoo tem um diferencial: permite que o usuário otimize o próprio sistema. Veja neste artigo como aplicar algumas otimizações para criar um sistema operacional mais satisfatório.

[ Hits: 6.379 ]

Por: Xerxes em 11/05/2021


Parte 2



-O3

Agora veremos a variável -O. Esta variável controla o nível geral de otimização. Alterar esse valor fará com que a compilação do código demore mais e usará muito mais memória, especialmente à medida que o nível de otimização for aumentado.

Existem sete configurações -O: -O0, -O1, -O2, -O3, -Os, -Og e -Ofast. Devemos usar apenas um deles em /etc/portage/make.conf.

Com exceção de -O0, as configurações -O ativam cada uma vários sinalizadores (flags) adicionais.

Segundo a wiki do Gentoo, -O3 é o maior nível de otimização possível. Ele permite otimizações que usam mais memória durante a compilação. Mesmo assim, compilar com -O3 não garante melhorar o desempenho e, em muitos casos, pode tornar o sistema lento devido a binários maiores e maior uso de memória. Parece ruim, não é? -O3 também é conhecido por quebrar vários pacotes. Usar -O3 não é recomendado! Mas veremos que ele pode ser usado, desde que com sabedoria.

Como vimos, o uso de otimização -O3 (a máxima possível) PODE criar problemas no sistema. Acredito que isso seja culpa do código do programa e não do compilador. Uma pessoa[1] resolveu fazer vários testes no Gentoo com o uso do -O3, LTO e Graphite. Após 8 meses de testes, ele conseguiu criar algo estável e deu a nós, meros usuários, o caminho das pedras para usarmos essas mesmas configurações de otimização com segurança, sem quebrar nada, pelo menos até agora.

[1]: Shane Peelar. Cientista da Computação (PhD) interessado em PNL, computação heterogênea, realidade virtual, engenharia reversa e jogos.

O procedimento está descrito no overlay GentooLTO.

Assim que você entra na página do GentooLTO, se depara com a seguinte mensagem:

"Aviso: esta configuração não é para os fracos de coração. Provavelmente não é uma boa ideia usar isso em um sistema de produção!"

Mas qual seria a graça em usar o Gentoo sem um pouco de emoção? XD

Conforme o autor do overlay, quase 30% dos aplicativos no repositório do Gentoo não precisam dessa configuração! E ele acrescenta:

"No início de 2017, comecei a fazer um experimento, construindo o Gentoo usando o sinalizador do compilador GCC -O3. [É bem documentado na wiki do Gentoo que esta não é uma configuração recomendada, mas eu queria ver até que ponto as coisas quebrariam. Acontece que a maioria dos pacotes que não podem ser compilados com -O3 e serão forçados a compilar com -O2 de qualquer jeito nas próprias ebuilds, portanto, experimentei pouquíssimas falhas. Devido ao sucesso que tive com o uso -O3, decidi complicar um pouco mais as coisas, então adicionei a otimização graphite nessa mistura. Depois fui um pouco mais ousado e adicionei o LTO. Depois de cerca de oito meses fazendo isso, me senti bem com a minha configuração e decidi publicá-la para que os interessados possam vê-la."

Em resumo, para usar a configuração sugerida pelo overlay, primeiramente adicione o overlay "mv" e o "lto-overlay". Exemplo:

# layman -a mv
# layman -a lto-overlay

Usando o flaggie, libere as opções instáveis para os seguintes programas:

# flaggie sys-config/ltoize +~amd64
# flaggie app-portage/portage-bashrc-mv +~amd64
# falggie app-shells/runtitle +~amd64

Depois:

# emerge sys-config/ltoize

Você já deve ter percebido que o objetivo é criar um link nas configurações normais do Portage (make.conf) para que ele aplique as otimizações sem alterar o padrão. Para isso deixe o arquivo "make.conf" com o link para as configurações e com o número de processos em paralelo que irá usar. Por exemplo, o meu está assim (e com profile desktop):

# cat /etc/portage/make.conf


# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.

NTHREADS="16"
source /etc/portage/make.conf.lto

CFLAGS="-march=native ${CFLAGS} -pipe" #NOTE: Consider using -falign-functions=32 if you use an Intel processor.  See issue #164.
CXXFLAGS="${CFLAGS}"

#COMMON_FLAGS="-march=native -O2 -pipe"
#CFLAGS="${COMMON_FLAGS}"
#CXXFLAGS="${COMMON_FLAGS}"
#FCFLAGS="${COMMON_FLAGS}"
#FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

#MAKEOPTS="-j16"
MAKEOPTS="-j${NTHREADS}"

GRUB_PLATFORMS="efi-64"

USE="gstreamer pulseaudio -doc -bluetooth -ios -aqua -cdrom -dvd"

VIDEO_CARDS="radeon r600"

ACCEPT_LICENSE="*"

PORTAGE_TMPDIR="/tmp"



Depois da alteração no "make.conf", recompile tudo aplicando as novas mudanças com o comando:

# emerge -e @world

Provavelmente isso deve levar algumas horas, principalmente se você tem o KDE Plasma instalado. Recomendo aplicar antes de ir dormir.

Conclusão

Não teria muito sentido usar Gentoo para obter o mesmo nível de otimização que uma distribuição comum. Mas até a instalação padrão do Gentoo (com -O2, sem LTO e sem Graphite), eu acredito, deve ser mais otimizada que o as distribuições comuns, por causa do "-march=native". Mesmo assim, o legal é tentar aproveitar mais a flexibilidade que o sistema oferece. Estou tentando aprender a fazer isso!

Agora vem a grande pergunta: com essas configurações, o sistema realmente fica melhor? Não fiz nenhum teste de benchmark, mas eu responderia: com certeza!

Estou usando o KDE Plasma, que é provavelmente o ambiente mais gordo que existe, com o papel de parede animado, ambiente cheio de efeitos e mesmo assim o sistema não apresenta NENHUM lag, ou travamento por mínimo que seja! E, recentemente, eu testei outras distribuições como openSUSE, Arch, Kubuntu e Manjaro, no meu "olhômetro" o Gentoo se saiu melhor.

Se problemas surgirão, só o tempo irá dizer. Por enquanto estou curtindo a aventura. Caso alguém tenha percebido algum erro nos procedimentos ou tenha alguma sugestão, por favor deixe um comentário, pois sou novato em Gentoo e estou tentando aprender.

Tem um meme e vou deixar aqui para descontrair. Archusers, não levem isso a sério! =P

Fontes


Página anterior    

Páginas do artigo
   1. Parte 1
   2. Parte 2
Outros artigos deste autor

O Guia do Slackware

Porque eu uso Linux Mint

Samba no Arch Linux (para principiantes)

Flatpak: usar ou não usar?

O que há de novo no Linux Mint 12?

Leitura recomendada

Ubuntu 7.10 "levinho" para PCs antigos

OpenVPN - Servidor Ubuntu 10.04 LTS e Clientes Windows

BIND DNS Active Directory Windows 2008

CentOS 5.5 - Instalação enxuta utilizando netinstall

Como desabilitar RAID 1

  
Comentários
[1] Comentário enviado por maurixnovatrento em 13/05/2021 - 20:33h


Ótimo artigo. OBS: o vídeo do final quase convence. kkkkk.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por removido em 14/05/2021 - 10:16h


[1] Comentário enviado por mauricio123 em 13/05/2021 - 20:33h


Ótimo artigo. OBS: o vídeo do final quase convence. kkkkk.


Ele ofendeu os ubunteiros!
:)

[3] Comentário enviado por xerxeslins em 14/05/2021 - 16:26h


[1] Comentário enviado por mauricio123 em 13/05/2021 - 20:33h


... OBS: o vídeo do final quase convence. kkkkk.


Hehehehe!

[4] Comentário enviado por leoCCB em 18/05/2021 - 00:33h


Tenho um note com 4G de ram e procesador i3 sétima geração, que chega a 2,3GHz. Para instalar um gentoo ou funtoo com kde levaria uma semana, mais ou menos?

[5] Comentário enviado por xerxeslins em 18/05/2021 - 08:40h


[4] Comentário enviado por Leo CCB em 18/05/2021 - 00:33h


Tenho um note com 4G de ram e procesador i3 sétima geração, que chega a 2,3GHz. Para instalar um gentoo ou funtoo com kde levaria uma semana, mais ou menos?


Eu só posso chutar, pois não tem como saber.

Se for sua primeira vez instalando Gentoo, deve acrescentar um tempo extra devido à leitura e pesquisa e/ou resolução de problemas.

Para quem nunca instalou, eu costumo chutar no máximo UM DIA para instalar sem ambiente gráfico.

E para quem já está acostumado pode levar uns 45 minutos, sem ambiente gráfico.

O KDE é meio gordinho, mas se tudo estiver OK pode mandar instalar ele e aguardar umas 12 horas (estou chutando, com essa configuração).

Mas gostaria de lembrar uma coisa: dependendo de como estiver instalando o Gentoo ou os apps, você não fica com o computador inutilizado. O computador fica compilando e vc continua usando ele normalmente para realizar suas atividades.

Mas se usar o LIVE-CD para instalar, como ele não tem ambiente gráfico, vc fica sem opção a não ser esperar.

Com esse configuração aí, eu acho que não deve levar mais de dois dias.

Uma opção é instalar o LXQT que é BEM menor. Só para ter o sistema utilizável e depois instalar o KDE, enquanto usa ele com LXQT.

[6] Comentário enviado por leoCCB em 19/05/2021 - 14:16h



O KDE é meio gordinho, mas se tudo estiver OK pode mandar instalar ele e aguardar umas 12 horas (estou chutando, com essa configuração).

Até que vai menos tempo que eu imaginei. No Slackware eu compilei uma vez o KDE e parece que demorou muito mais. Mas a vantagem que eu tinha opção de compilar em módulos


Mas gostaria de lembrar uma coisa: dependendo de como estiver instalando o Gentoo ou os apps, você não fica com o computador inutilizado. O computador fica compilando e vc continua usando ele normalmente para realizar suas atividades.

tem que iniciar na sexta à noite e torcer para ficar pronto no domingo à noite. Infelizmente só tenho um computador para 3 pessoas kkkk

Com esse configuração aí, eu acho que não deve levar mais de dois dias.
Uma opção é instalar o LXQT que é BEM menor. Só para ter o sistema utilizável e depois instalar o KDE, enquanto usa ele com LXQT.

Boa ideia, aí com LXQT posso instalar os programas do KDE que eu gosto (kate, dolphin, konqueror, etc). Eu prefiro pq têm as opções gráficas e também via linha de comando. Dependendo da hora, um ou outro é mais prático. Se ficar bom, talvez nem instale o KDE completo, e se instalar é para conhecer o sistema mesmo.

Valeu pelas dicas

[7] Comentário enviado por cizordj em 22/05/2021 - 11:55h

O vídeo no final kkk

[8] Comentário enviado por N1vBruno em 25/05/2021 - 20:53h

Sou um "archuser", btw, e chorei de rir com o vídeo no final! kkkkk
Sempre achei o Gentoo interessante, com certeza pretendo me aventurar algum dia... mas até lá o Arch me atende muito bem.
Vou guardar as dicas para o futuro =P

[9] Comentário enviado por xerxeslins em 27/05/2021 - 10:35h


[8] Comentário enviado por N1vBruno em 25/05/2021 - 20:53h

Sou um "archuser", btw, e chorei de rir com o vídeo no final! kkkkk
Sempre achei o Gentoo interessante, com certeza pretendo me aventurar algum dia... mas até lá o Arch me atende muito bem.
Vou guardar as dicas para o futuro =P


Hehehe que bom que levou na brincadeira.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts