Estoy escribiendo esta guía para guardar mi progreso y dejo que otros contribuyan a aumentar aún más el rendimiento de Linux; Después de todo, muchos son mejores que uno. Puedes usarlos todos o solo algunos de ellos. Lea un tema completamente antes de comenzar .
Actualmente estoy en Nobara, por lo que algunos pasos pueden variar de la distribución a la distribución.
Nota: Esta guía no es para principiantes que son nuevos en Linux, pero algunos de ellos pueden ser usados de manera segura por ellos.
En este momento, todos están de acuerdo en que compilar su núcleo es una de las mejores opciones para obtener la velocidad más rápida posible. Es posible que desee Google How to make custom kernel in <distro> para obtener los paquetes necesarios para compilar el núcleo.
Descargue el último núcleo o lo que desee. Extraerlo; Voy a asumir un nombre genérico de ahora en linux-xxx .
El siguiente paso es encontrar el archivo config . La mayoría de las veces, puedes ejecutar:
cp -v /boot/config- $( uname -r ) .config Desde el interior linux-xxx , que debería dar una salida como:
' /boot/config-y.y.y-generic ' - > ' .config ' Si falla, puede encontrar config in /proc/config.gz o simple ejecutar make listnewconfig o make oldconfig (generalmente comienza un proceso largo; intente encontrar su configuración en su código fuente de distribución también).
Edite Makefile y cambie EXTRAVERSION para agregar algo. Por ejemplo, "extraversión = <YourName>".
(Es posible que desee ver el próximo subtópico antes de hacer esto) Ahora ejecute make xconfig . Ahora aquí son posibles muchas optimizaciones, se pueden eliminar y habilitar muchos códigos muertos y habilitados. Vamos por el camino seguro por ahora.
- Processor type and features
- Processor family
- [ x ] Core2/newer XeonGeneric-x86-64 de forma predeterminada.Ahora, es posible que desee ejecutar:
dmesg --level=err
dmesg --level=warn Para ver si puede habilitar algunas banderas adicionales para características adicionales. Por ejemplo, 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. se puede resolver permitiéndolos a ambos.
Finalmente, compilando el núcleo:
# 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 Donde N es el número de cores que tiene, alternativamente use $(getconf _NPROCESSORS_ONLN) .
Si algún paso falla, ejecute make clean y comience de nuevo.
Haciéndolo predeterminado en grub (estoy usando Grub2, su proceso puede variar):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-x.x.x-x Puedes encontrar el tuyo vmlinuz-xxx-x in /boot/
Ahora reinicie y ejecute uname -r para ver su kernel.
Hay varios parches que puede usar para aumentar el rendimiento o para simplificar la vida.
Hay muchos parches disponibles, y tendrá que encontrar aquellos que mejor se adapten a usted. Usaré el parche de kernel Graysky2 aquí. Descargue todo el repositorio o simplemente el archivo que necesita. En mi caso, tengo GCC 10 y el último kernel, así que usaré esto.
Copie el archivo de parche deseado en la raíz del diccionario Linux extraído; El mismo lugar que .config .
patch -p1 < enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch
Deberías ver una salida 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.hAhora, puede comenzar desde el paso 4 en la configuración anterior y verá:
- Processor type and features
- Processor family
- [x] Native optimizations autodetected by GCCHay otros parches, como la programación relacionada con la que puede solicitar. Nuevamente, intente encontrar sus parches que se adapten a su sistema.
Trate de mantener el último núcleo de trabajo, es decir, tener un mínimo de dos núcleos (el que está utilizando y el anterior). Nota: Eliminar el núcleo actualmente en ejecución (determinado por uname -r ) hará que su sistema no sea moderable.
Estas entradas deben eliminarse:
/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 o sudo update-grub2
sudo gedit /etc/fstab , cámbielo para que se vea como esto (esto está en Fedora, el suyo podría 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
La opción nobarrier es segura, ya que no esperaba que ocurra el cloque repentino o haya respaldado la batería.
En un dispositivo con un caché de redacción volátil respaldado por batería, la opción Nobarrier no conducirá a la corrupción del sistema de archivos, ya que se supone que los bloques pendientes llegan al almacenamiento permanente. hombre 5 btrfs
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
IMPORTANTE: Por lo general, me gusta deshabilitar mitigations , pero, de nuevo, estoy en CPU basada en AMD y no tengo Spectre solo Meltdown , no ejecuto un script desconocido, e incluso si tengo que hacerlo, uso contenedores y Firefox con noscript y algunos otros complementos de seguridad. No obstante, si comprende las preocupaciones de seguridad, puede deshabilitarlo y ver un impulso sustancial en el rendimiento.
sudo grubby --args "mitigations=off nowatchdog processor.ignore_ppc=1 amdgpu.ppfeaturemask=0xffffffff ec_sys.write_support=1 split_lock_detect=off" --update-kernel=ALLO
sudo gedit /etc/default/grub
Encontrará una línea GRUB_CMDLINE_LINUX=" ... rhgb quiet cambiarlo a ( ... significa otros parámetros):
GRUB_CMDLINE_LINUX= " ... rhgb quiet mitigations=off nowatchdog processor.ignore_ppc=1 split_lock_detect=off " Además, edite GRUB_TIMEOUT=5 a GRUB_TIMEOUT=1.
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
O
sudo grub2-mkconfig -o /etc/grub2.cfg
Después de reiniciar, puede ejecutar cat /proc/cmdline para ver sus opciones de arranque.
Nuestro último ajuste lo mejoró un poco, pero intentemos algo más.
Eliminar aplicaciones de inicio; Utilizo gnome-tweaks para una experiencia similar a la GUI.
Ejecute lo siguiente para encontrar qué servicio está tomando más tiempo:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain Estos pueden variar de un sistema a otro y distribuir a distribución; En mi caso (Fedora), deshabilité dnf-makecache.service. que tomó alrededor de 32s . Para hacerlo:
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 falseEs posible que desee buscar en Google cada servicio que piense sobre deshabilitar y lo que hace; En mi caso, solo actualiza DNF Cache, que generalmente me gusta hacer manualmente.
Si tiene 8GB o más RAM, podría beneficiarse de ella; De lo contrario, déjelo como es.
Para ver el intercambio actual, ingrese cat /proc/sys/vm/swappiness ; Debería imprimir 60 ; Queremos hacerlo 10.
sudo gedit /etc/sysctl.conf
Ingrese vm.swappiness=10 y reinicie; Ahora el paso 1 debería imprimir 10.
scaling_governor al performance No lo cambie al performance en las CPU basadas en Ryzen según sea posible (parece que obtengo un mejor rendimiento en AC, pero, de nuevo, performance no parece permitir que Turbo Boost en algunos casos) perjudique su rendimiento, usando ondemand . o schedutil es mejor (más inclinado hacia schedutil tan pronto como se solucione).
Ejecute cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor para ver a su gobernador actual.
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Es muy probable que esta configuración no persista durante el próximo arranque; Me gusta cambiarlo manualmente en lugar de hacer un servicio Systemd (soy una computadora portátil y se calienta). Es posible que desee Google cómo hacerlo persistente para su distribución si lo desea o:
echo ' GOVERNOR="performance" ' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable schedutil El valor predeterminado es schedutil ; Puedes ver a otros aquí.
Nota : También puede cambiar el valor predeterminado durante la compilación del núcleo.
Puede encontrar herramientas de overclocking específicas para su (s) GPU (s), pero para asegurarse de que el sistema operativo (especialmente AMD) se asegure de que su tarjeta gráfica no esté suprimida:
Verificar si es auto :
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
cat /sys/class/drm/card1/device/power_dpm_force_performance_levelVerifique los parámetros de GPU por:
sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
sudo cat /sys/kernel/debug/dri/1/amdgpu_pm_infoAhora establezca todo en 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 Puede volver a cambiarlos a auto si su sistema se sobrecalienta.
Archwiki/Mejora del rendimiento
¡Deshabilitar Cool'n'Quiet o speedstep o PowerNow! de BIOS (causará calor en las computadoras portátiles, solo lo habilitará durante los juegos)
Verifique otras características del BIOS también; varían de un sistema a otro, pero deberían tener un impulso significativo en el rendimiento
Usando X en lugar de Wayland (puede variar el juego hasta el juego)
Usar backend Opengl en juegos en lugar de Vulkun (puede variar el juego al juego)
Siéntase libre de abrir un problema o editar el ReadMe usted mismo.
Con licencia bajo cualquiera de estos: