GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer que el sistema Linux funcione más rápido en CPU Intel

Probablemente hayas oído hablar de Meltdown y vulnerabilidades de Spectre eso afectó a muchos procesadores modernos, incluidos ciertos procesadores de Intel, AMD, System Z, Power y ARM. Afortunadamente, los desarrolladores de Kernel han lanzado parches de seguridad para abordar los problemas de Meltdown/Spectre. En las versiones recientes del Kernel, los parches se implementan por defecto. Aunque los parches de seguridad ayudan a mitigar las vulnerabilidades, también han afectado el rendimiento del sistema. Sí, las mitigaciones causarán un impacto en el rendimiento. Si está seguro de que sus sistemas están bien protegidos y desea obtener todo el rendimiento posible de su sistema personal, esta guía es para usted. Esta breve guía explica cómo hacer que el sistema Linux se ejecute más rápido en CPU Intel desactivando las mitigaciones Spectre y Meltdown.

Una palabra de precaución

Antes de implementar la siguiente solución, debo advertirle:ESTO ES MUY INSEGURO y NO RECOMENDADO . Esto deshabilitará todas las mitigaciones de Spectre y Meltdown en las CPU Intel y dejará sus sistemas Linux abiertos a todos los riesgos de seguridad. A menos que sepa claramente lo que está haciendo, no haga esto. ¡Has sido advertido!

Si simplemente no le importa la seguridad, continúe y deshabilite las mitigaciones como se describe a continuación.

Haga que el sistema Linux se ejecute más rápido en CPU Intel

Edite su archivo GRUB usando su editor de texto preferido.

En Debian , Ubuntu :

$ sudo nano /etc/default/grub

Si está utilizando Linux Kernel versión 5.1.13 y más reciente, agregue/edite el siguiente parámetro de Kernel como se muestra a continuación:

GRUB_CMDLINE_LINUX="mitigations=off"

Esto deshabilitará todas las mitigaciones de CPU opcionales. Esto mejora el rendimiento del sistema, pero también puede exponer a los usuarios a varias vulnerabilidades de la CPU.

Si está utilizando versiones de Kernel anteriores a la 5.1.13, agregue o edite lo siguiente:

GRUB_CMDLINE_LINUX="noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"

Parámetros del kernel para deshabilitar todas las mitigaciones de Spectre y Meltdown

Estos son los parámetros del Kernel que puede usar para deshabilitar todas las mitigaciones de Spectre/Meltdown que están ralentizando su sistema Linux.

Sepa lo que hace cada bandera:

  • noibrs - Deshabilite la especulación restringida de rama indirecta en el microcódigo.
  • noibpb - Deshabilitar las barreras de predicción de bifurcación indirecta.
  • nopti - Es lo mismo que pti=off. Tabla de páginas de control Aislamiento de los espacios de direcciones del kernel y del usuario. Deshabilitar esta función elimina el endurecimiento, pero mejora el rendimiento de las llamadas al sistema y las interrupciones.
  • nospectre_v2 - Deshabilite todas las mitigaciones para la vulnerabilidad de la variante 2 de Spectre (predicción de ramificación indirecta). El sistema puede permitir fugas de datos con esta opción, que es equivalente a spectre_v2=off.
  • nospectre_v1 - Deshabilite las mitigaciones para la variante 1 de Spectre (omisión de verificación de límites). Con esta opción es posible que se produzcan filtraciones de datos en el sistema.
  • l1tf=desactivado - Mitigación de control de la vulnerabilidad L1TF en las CPU afectadas. La protección de inversión PTE del kernel está habilitada incondicionalmente y no se puede deshabilitar. Deshabilita las mitigaciones del hipervisor y no emite ninguna advertencia. También reduce el tamaño de intercambio y la restricción de límite de RAM disponible tanto en el hipervisor como en el hardware completo.
  • nospec_store_bypass_disable - Deshabilite todas las mitigaciones para la vulnerabilidad de omisión de almacenamiento especulativo.
  • sin_barrera_stf - Deshabilitar la barrera de reenvío de tienda (solo PPC).
  • mds=desactivado - Mitigación de control para la vulnerabilidad de muestreo de datos microarquitectónicos (MDS).
  • tsx=en - Habilite la compatibilidad con TSX (Extensiones de sincronización transaccional) de Intel.
  • tsx_async_abort=desactivado - Deshabilitar la mitigación de TAA (TSX Async Abort).
  • mitigaciones=desactivadas - Deshabilitar todas las mitigaciones.

Para obtener más detalles sobre cada bandera, realice una búsqueda rápida en Google.

Después de agregar los parámetros del Kernel, actualice la configuración de GRUB usando el comando:

$ sudo update-grub

Finalmente, reinicie el sistema:

$ sudo reboot

En sistemas basados ​​en RPM como CentOS y RHEL , edite /etc/sysconfig/grub archivo:

$ sudo /etc/sysconfig/grub

Agregue los parámetros anteriores en GRUB_CMDLINE_LINUX. Y luego actualice la configuración de GRUB usando el comando:

$ sudo grub2-mkconfig

Finalmente reiniciar:

$ sudo reboot

En algunos sistemas Linux, es posible que deba agregar estos parámetros del kernel en "GRUB_CMDLINE_LINUX_DEFAULT="..." .

Ahora hemos deshabilitado todas las mitigaciones de Spectre y Meltdown. Esto aumentará un poco el rendimiento de su sistema, pero también puede exponer a los usuarios a varias vulnerabilidades de la CPU.

Comprueba si las mitigaciones de Spectre/Meltdown están deshabilitadas

Podemos usar "spectre-meltdown-checker" herramienta que te ayuda a identificar las vulnerabilidades de Spectre y Meltdown en Linux. Está disponible en los repositorios oficiales de algunas distribuciones de Linux.

En Debian, Ubuntu:

$ sudo apt install spectre-meltdown-checker

En CentOS, RHEL:

$ sudo yum install epel-release
$ sudo yum install spectre-meltdown-checker

En Fedora:

$ sudo dnf install $ sudo apt install spectre-meltdown-checker

Después de instalar spectre-meltdown-checker, ejecútelo como usuario raíz o con privilegios sudo para verificar si las mitigaciones de Spectre y Meltdown están desactivadas:

Deberías ver un mensaje como el siguiente.

[...]
> STATUS: VULNERABLE (Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers)
[...]
> STATUS:  VULNERABLE  (IBRS+IBPB or retpoline+IBPB is needed to mitigate the vulnerability)
[...]
> STATUS:  VULNERABLE  (PTI is needed to mitigate the vulnerability)

Alternativamente, puede verificar las vulnerabilidades de Spectre/Meltdown como se muestra a continuación.

$ ls /sys/devices/system/cpu/vulnerabilities/

Salida de muestra:

itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort

Y...

$ grep . /sys/devices/system/cpu/vulnerabilities/*

Salida de muestra:

/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable; SMT Host state unknown
/sys/devices/system/cpu/vulnerabilities/meltdown:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable, STIBP: disabled
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected

verifique las vulnerabilidades de Spectre y Meltdown

Ejecute algunos puntos de referencia y verifique cuánto rendimiento obtendrá, y luego decida si vale la pena deshabilitar todo.

Como ya he advertido, este consejo es una opción útil y sensata para computadoras domésticas o de un solo usuario. Pero no recomendado para sistemas de producción.


Linux
  1. Cómo configurar o cambiar el nombre de host del sistema en Linux

  2. Cómo cambiar el nombre de host en Linux

  3. Linux:¿cómo ejecutar un gestor de arranque desde Linux?

  4. ¿Cómo puedo ejecutar un script de Perl como un demonio del sistema en Linux?

  5. Cómo hacer que un script de Python se ejecute como un servicio o demonio en Linux

Cómo hacer un archivo ejecutable en Linux

Cómo ejecutar Windows 95 en Linux

Cómo navegar directorios más rápido en Linux

Cómo hacer que Debian Linux sea más rápido

Cómo enumerar servicios en Linux

Cómo ejecutar paquetes .run y .bin en el sistema Linux