Minha instalação do Fedora 32
Olá pessoal.
Gostaria de compartilhar com vcs o processo de pós instalação que fiz no fedora para buscar o maior desempenho possível, mesmo sacrificando um pouco a segurança.
A intenção é criar uma uma instalação voltada para jogos, sendo que, em casos onde se tenha arquivos importantes, evite de usar as configurações descritas, como falei, essa instalação busca apenas performance.
A primeira coisa que fiz, foi instalar o fedora 32 com o sistema de arquivos BTRFS, não por conta dos snapshots, mas sim pela opção de compressão.
Após a instalação e atualização do sistema e adição dos pacotes rotineiros que cada um acha melhor, as otimizações que eu fiz começaram pela edição do arquivo /etc/dnf/dnf.conf e adicionar a linha fastestmirror=True, para agilizar o dnf.
Após isso, precisei editar o fstab, já que minha intenção era usar a compressão que o BTRFS disponibiliza. Assim, editei o arquio /etc/fstab e adicionei as seguites opções: noatime, ssd,space_cache,compress=zstd ante do subvol criado. Isso para meu caso, que tenho ssd.
Após isso, foi necessário reinicializa.
Continuando com as otimizações, foi a hora de comprimir o disco. o comoando é:
sudo btrfs filesystem defragment -r -v -czstd /
isso vai fazer a desfragmentação e a compressão..
Caso queira ver a diferença de uso do disco antes e depóis da compressão pode ser visto rodando o comando df -h antes e depois da operação.
Um programa legal para ver a taxa de compressão é o compsize, assim fica ainda mais fácil de ver.
o comando que eu uso para o compsize é:
sudo compsize /{etc,home,root,usr}
Seguindo, é hora de compilar um kernel com suporte à fsync, que é um recurso bem interessante para quem joga. No COPR tem o kernel do gloriouseggroll que é só ativar o repo e instalar, mas tem outras opções como por exemplo o kernel zen, o kernel xanmod e o kernel-tkg. bastando apenas clonar e usar o config no sistema para ele instalar.
O endereço do git para o kernel-tkg é:
https://github.com/Frogging-Family/linux-tkg.git
Para o kernel-zen -e:
https://github.com/zen-kernel/zen-kernel.git
e para o kernel xanmod é:
https://github.com/xanmod/linux.git
Como descrevi, bastou apenas fazer um git clone e o endereço do git e esperar fazer o download. no meu caso, eu instalei o kernel xanmod, portando ficou assim:
git clone https://github.com/xanmod/linux.git
Após o término irá criar uma pasta chamada linux,, basta entrar na pasta com o comando cd linux e pronto.
O próximo passo é verificar o arquivo config, que fica no /boot do fedora, esse arquivo será usado para definir os parâmetros do kernel usado no fodora e que tbm será usado no novo kernel.
no caso o arquivo config-5.7.14-200.fc32.x86_64 será usado, então basta copiar o arquivo e renomerar em .config. O comando usado para isso é:
cp /boot/config-5.7.14-200.fc32.x86_64 .config
Feito isso basta rodar o comando para maner as configurações do kernel atual para o novo, o comando é o:
make oldconfig
Pode ser que no processo, algumas dependências estejam faltando, mas o terminal mostrará o pacote faltante, mas para ter certezam certifique-se de ter os pacotes flex bison gcc ncurses-devel.
Seguindo, pode ser feitas alterações com o make menuconfig, mas é bom que saiba o que estpa fazendo.
Protno, hora de compilar o kernel, para iso masta rodar o comando make seguido de -j e do número de cores do CPU que vc deseja que compile por exemplo:
make -j8
Isso irá demorar um pouco e pode ser que esteja faltando algum pacote, mas isso é mostrado no terminal, caso aconteça.
Seguindo, o comando para instalar
sudo make modules_install install
Após isos o kernel novo já estará disponível. para testar no próximo boot.
Seguindo com mais ajustes.
O próxímo passo é fazer alguns ajustes finos no sistema.
O primeiro parâmetro é ajustar o agendador de leitura e escrita do disco.
Na wiki do arch, tno qual estou me baseando para fazer esse post, trata da seguinte situação; Para discos rotativos, o recomendado é bfq, para ssd sata o mq-deadline e para ssd nvme o none
Para verificar qual é o io scheduler usado no momendo basta rodar:
cat /sys/block/sda/queue/scheduler
Caso queira alterar o io scheduler em tempo real basta rodar:
echo XXXX > /sys/block/sdX/queue/scheduler
onde o XXXX é o nome do scheduler e o sdX é a partição do disco referente.
pode ser interessante criar regras no udev para tal, basta editar o arquivo:
sudo nano /etc/udev/rules.d/60-ioschedulers.rules
e colocar os seguinte argumentos:
set scheduler for NVMe
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
set scheduler for SSD and eMMC
ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
set scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
Salvar e reiniciar o sistema.
Há mais um ajuste visando desempenho, e é desativando as mitigações para o caso das vulnerabilidades descobertas nos CPUs x86.
Para isso, basta adicionar aos parâmetros de boot mitigation=off no na inicialização do sistema.
Enfim, o último ajuste é desativar o watchdogs, para verificar se está ativo basta rodar o comando:
cat /proc/sys/kernel/watchdog
se retornar 1 significa que está ativo, se retornar 0 significa que está desativado.
Para desativar basta adicionar aos parâmetros de boot o nowatchdog
Após isso atualize o grub para fazer efeito. o comando é:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Reinicie o sistema e verifique se está com o watchdogs desativado.
Caso queira, pode ser adicionado o watchdogs no bleacklist, com o comando:
sudo nano /etc/modprobe.d/nobeep.conf
e inserir as linhas:
Comando para desativar watchdogs
blacklist iTCO_wdt.
É isso, mas o melhor é sempre manter o sistema o mais atualizado possível, principalmente para quem tem placa de vídeo da AMD e verificar se todos os pacotes para funcionar o vulkan estão instalados.
Para complementar, sugiro o post do Leandro Ramos com dicas adicionais para deixar o sistema com ainda mais performance.
https://fedorabr.org/discussion/comment/1113#Comment_1113
Espero ter ajudado.
A referência destes ajustes está em https://wiki.archlinux.org/index.php/Improving_performance
Salas de discussão
- 721 Todas as salas de discussão
- 5 Eventos
- 402 Fedora
- 7 CoreOS
- 137 Spins
- 11 CINNAMON
- 28 GNOME
- 63 KDE
- 10 LXDE
- 4 LXQT
- 13 MATE
- SOAS
- 3 XFCE
- 13 Server
- 84 Workstation
- 33 SilverBlue
- Atomic
- 3 Labs
- ARM®
- 3 Segurança
- 7 Servidores
- 222 Tutoriais
- 6 Críticas e Sugestões
- 16 Novidades e anuncios
- 5 CentOS
- 18 Games
- 31 Hardware
- 8 Linguagens de programação