Estou escrevendo este guia para salvar meu progresso e deixar que outras pessoas contribuam para aumentar ainda mais o desempenho do Linux; Afinal, muitos são melhores que um. Você pode usar todos eles ou apenas alguns deles. Leia um tópico totalmente antes de começar .
Atualmente, estou em Nobara, então alguns passos podem variar de distro a distro.
Nota: Este guia não é para iniciantes que são novos no Linux, mas alguns deles podem ser usados com segurança por eles.
Até agora, todo mundo concorda que a compilação do seu kernel é uma das melhores opções para obter a velocidade mais rápida possível. Você pode querer pesquisar no Google How to make custom kernel in <distro> obtenha os pacotes necessários para compilar o kernel.
Faça o download do kernel mais recente ou o que quiser. Extrai -lo; Vou assumir um nome genérico a partir de agora no linux-xxx .
A próxima etapa é encontrar o arquivo config . Na maioria das vezes, você pode correr:
cp -v /boot/config- $( uname -r ) .config De Inside linux-xxx , que deve fornecer uma saída como:
' /boot/config-y.y.y-generic ' - > ' .config ' Se falhar, você poderá encontrar o Config em /proc/config.gz ou o simples execução make listnewconfig ou make oldconfig (ele geralmente inicia um processo longo; tente encontrar sua configuração no seu código -fonte de distro também).
Edite Makefile e altere EXTRAVERSION para adicionar algo. Por exemplo, "extroversão = <henName>".
(Você pode querer ver o próximo subtópico antes de fazer isso) agora o Run make xconfig . Agora, muitas otimizações são possíveis aqui, muitos códigos e módulos mortos podem ser removidos e ativados. Vamos na estrada segura por enquanto.
- Processor type and features
- Processor family
- [ x ] Core2/newer XeonGeneric-x86-64 por padrão.Agora, você pode querer correr:
dmesg --level=err
dmesg --level=warn Para ver se você pode ativar alguns sinalizadores extras para obter recursos extras. Por exemplo, psmouse serio1: elantech: The touchpad can support a better bus than the old PS/2 protocol. Make sure MOUSE_PS2_ELANTECH_SMBUS and MOUSE_ELAN_I2C_SMBUS are enabled to get a better touchpad experience. pode ser resolvido permitindo os dois.
Finalmente, compilando o kernel:
# sed -ri '/CONFIG_SYSTEM_TRUSTED_KEYS/s/=.+/=""/g' .config
make -j N CFLAGS= ' -march=native -O3 -flto -pipe ' CXXFLAGS= ' -march=native -O3 -flto -pipe '
make -j N CFLAGS= ' -march=native -O3 -flto -pipe ' CXXFLAGS= ' -march=native -O3 -flto -pipe ' modules
sudo make modules_install
sudo make install Onde N é o número de cores que você possui, alternativamente, US $(getconf _NPROCESSORS_ONLN) .
Se alguma etapa falhar, execute make clean e inicie novamente.
Fazendo com que o padrão no GRUB (estou usando o GRUB2, seu processo pode variar):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-x.x.x-x Você pode encontrar o seu vmlinuz-xxx-x in /boot/
Agora reinicie e execute uname -r para ver seu kernel.
Existem vários patches que você pode usar para aumentar o desempenho ou para tornar a vida mais simples.
Existem muitos patches disponíveis, e você terá que encontrar aqueles que se adequam a você melhor. Vou usar o patch do kernel Graysky2 aqui. Faça o download de todo o repo ou apenas o arquivo que você precisa. No meu caso, eu tenho o GCC 10 e o kernel mais recente, então vou usar isso.
Copie o arquivo de patch desejado na raiz do dicionário Linux extraído; Mesmo lugar que .config .
patch -p1 < enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch
Você deve ver uma saída como esta:
patching file arch/x86/Kconfig.cpu
patching file arch/x86/Makefile
patching file arch/x86/Makefile_32.cpu
patching file arch/x86/include/asm/vermagic.hAgora, você pode começar da Etapa 4 na configuração anterior e verá:
- Processor type and features
- Processor family
- [x] Native optimizations autodetected by GCCExistem outros patches, como o agendamento relacionado ao qual você pode se inscrever. Novamente, tente encontrar seus patches que se adaptem ao seu sistema.
Tente manter o último kernel que trabalha, ou seja, tenha no mínimo dois kernels (o que você está usando e o anterior). NOTA: A remoção do kernel em execução no momento (determinado por uname -r ) tornará seu sistema não impulsível.
Essas entradas precisam ser removidas:
/boot/vmlinuz-x.x.x-x
/boot/initrd-x.x.x-x
/boot/System-map-x.x.x-x
/boot/config-x.x.x-x
/lib/modules/x.x.x-x/
/var/lib/initramfs/x.x.x-x/
/boot/loader/entries/ * x.x.x-x sudo grub2-mkconfig -o /boot/grub2/grub.cfg ou sudo update-grub2
sudo gedit /etc/fstab , altere -o para parecer algo assim (isso está no Fedora, o seu pode variar):
UUID= < do-not-change > / btrfs subvol=root,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async,lazytime 0 0
UUID= < do-not-change > /boot ext4 defaults 1 2
UUID= < do-not-change > /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID= < do-not-change > /home btrfs subvol=home,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async,lazytime 0 0Opcional:
nobarrier
A opção nobarrier é segura, desde que você não espere que o Powerloss repentino aconteça ou tenha o apoio de bateria.
Em um dispositivo com um cache volátil de back-back, a opção Nobarrier não levará à corrupção do sistema de arquivos, pois os blocos pendentes devem chegar ao armazenamento permanente. Homem 5 btrfs
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
IMPORTANTE: Normalmente gosto de desativar mitigations , mas, novamente, estou na CPU baseada em AMD e não tenho apenas Spectre Meltdown , não executo um script desconhecido e, mesmo que seja necessário, uso contêineres e Firefox com noscript e alguns outros complementos de segurança. No entanto, se você entender as preocupações de segurança, poderá desativá -lo e ver um impulso substancial no desempenho.
sudo grubby --args "mitigations=off nowatchdog processor.ignore_ppc=1 amdgpu.ppfeaturemask=0xffffffff ec_sys.write_support=1 split_lock_detect=off" --update-kernel=ALLOU
sudo gedit /etc/default/grub
Você encontrará uma linha GRUB_CMDLINE_LINUX=" ... rhgb quiet MUDE -SILTE para ( ... significa outros parâmetros):
GRUB_CMDLINE_LINUX= " ... rhgb quiet mitigations=off nowatchdog processor.ignore_ppc=1 split_lock_detect=off " Além disso, edite GRUB_TIMEOUT=5 para GRUB_TIMEOUT=1.
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
OU
sudo grub2-mkconfig -o /etc/grub2.cfg
Após a reinicialização, você pode executar cat /proc/cmdline para ver suas opções de inicialização.
Nosso último ajuste melhorou, mas vamos tentar algo mais.
Remover aplicativos de inicialização; Eu uso gnome-tweaks para uma experiência semelhante à GUI.
Execute o seguinte para descobrir qual serviço está levando mais tempo:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain Estes podem variar de sistema para sistema e distro -distro; No meu caso (Fedora), desativei dnf-makecache.service. que levou cerca de 32s . Fazer isso:
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl disable dnf-makecache.service
sudo systemctl disable dnf-makecache.timer
sudo gsettings set org.gnome.software download-updates falseVocê pode querer pesquisar no Google todos os serviços que pensa em desativar e o que ele faz; No meu caso, apenas atualiza o cache do DNF, que eu geralmente gosto de fazer manualmente.
Se você tem 8 GB ou mais RAM, poderá se beneficiar com ele; Caso contrário, deixe como está.
Para ver o swappiness atual, insira cat /proc/sys/vm/swappiness ; deve imprimir 60 ; Queremos fazer 10.
sudo gedit /etc/sysctl.conf
Insira vm.swappiness=10 e reinicie; Agora a etapa 1 deve imprimir 10.
scaling_governor para performance Não mude para performance nas CPUs baseadas em Ryzen, como ele pode (pareço obter melhor desempenho no AC, mas, novamente, performance não parece permitir um impulso Turbo em alguns casos) prejudica o desempenho, usando ondemand . Ou schedutil é melhor (mais inclinado para schedutil assim que for corrigido).
Execute cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor para ver seu governador atual.
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Essa configuração provavelmente não persistirá durante a próxima inicialização; Eu gosto de alterá -lo manualmente, em vez de fazer um serviço Systemd (eu sou um laptop e fica quente). Você pode querer pesquisar no Google como torná -lo persistente para sua distro, se quiser ou:
echo ' GOVERNOR="performance" ' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable schedutil O padrão é schedutil ; Você pode ver os outros aqui.
Nota : Você também pode alterar o padrão durante a compilação do kernel.
Você pode encontrar ferramentas de overclock específicas para suas GPU (s), mas para garantir que sua placa gráfica não esteja sendo suprimida pelo sistema operacional (especialmente AMD):
Verificando se é auto :
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
cat /sys/class/drm/card1/device/power_dpm_force_performance_levelVerifique os parâmetros da GPU por:
sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
sudo cat /sys/kernel/debug/dri/1/amdgpu_pm_infoAgora defina tudo para o alto:
sudo su
echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
echo high > /sys/class/drm/card1/device/power_dpm_force_performance_level Você pode alterá -los de volta ao auto se o seu sistema superaquecer.
Archwiki/Melhorando o desempenho
Desativando Cool'n'Quiet ou speedstep ou PowerNow! Do BIOS (causará aquecimento nos laptops, apenas a ativar durante os jogos)
Verifique outros recursos do BIOS também; Eles variam de sistema para sistema, mas devem ter um impulso significativo no desempenho
Usando X em vez de Wayland (pode variar o jogo para o jogo)
Usando back -end Opengl em jogos em vez de Vulkun (pode variar o jogo ao jogo)
Sinta -se à vontade para abrir um problema ou editar o readme você mesmo.
Licenciado sob qualquer um deles: