GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rendre le système Linux plus rapide sur les processeurs Intel

Vous avez probablement entendu parler de Meltdown et Vulnérabilités Spectre qui a affecté de nombreux processeurs modernes, y compris certains processeurs d'Intel, AMD, System Z, Power et ARM. Heureusement, les développeurs du noyau ont publié des correctifs de sécurité pour résoudre les problèmes de Meltdown/Spectre. Dans les versions récentes du noyau, les correctifs sont implémentés par défaut. Même si les correctifs de sécurité aident à atténuer les vulnérabilités, ils ont également eu un impact sur les performances du système. Oui, les atténuations entraîneront une baisse des performances. Si vous êtes sûr que vos systèmes sont bien protégés et que vous voulez chaque once de performance que vous pouvez tirer de votre système personnel, ce guide est pour vous. Ce bref guide explique comment accélérer le fonctionnement du système Linux sur les processeurs Intel en désactivant les atténuations Spectre et Meltdown.

Un mot d'avertissement

Avant de mettre en œuvre la solution suivante, je dois vous avertir - CELA EST TRÈS NON SÉCURISÉ et NON RECOMMANDÉ . Cela désactivera toutes les atténuations Spectre et Meltdown sur les processeurs Intel et laissera vos systèmes Linux ouverts à tous les risques de sécurité. À moins que vous ne sachiez clairement ce que vous faites, ne le faites pas. Vous êtes prévenu !

Si vous ne vous souciez tout simplement pas de la sécurité, continuez et désactivez les mesures d'atténuation comme décrit ci-dessous.

Faire fonctionner le système Linux plus rapidement sur les processeurs Intel

Modifiez votre fichier GRUB à l'aide de votre éditeur de texte préféré.

Sur Debian , Ubuntu :

$ sudo nano /etc/default/grub

Si vous utilisez Linux Kernel version 5.1.13 et plus récente, ajoutez/modifiez le paramètre Kernel suivant comme ci-dessous :

GRUB_CMDLINE_LINUX="mitigations=off"

Cela désactivera toutes les atténuations facultatives du processeur. Cela améliore les performances du système, mais peut également exposer les utilisateurs à plusieurs vulnérabilités du processeur.

Si vous utilisez des versions du noyau antérieures à 5.1.13, ajoutez/modifiez plutôt ce qui suit :

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"

Paramètres du noyau pour désactiver toutes les atténuations Spectre et Meltdown

Ce sont les paramètres du noyau que vous pouvez utiliser pour désactiver toutes les atténuations Spectre/Meltdown qui ralentissent votre système Linux.

Sachez ce que fait chaque indicateur :

  • noibrs - Désactivez la spéculation restreinte de branche indirecte dans le microcode.
  • noibpb - Désactiver les barrières de prédiction de branche indirecte.
  • pas d'avis - C'est la même chose que pti=off. Table des pages de contrôle Isolement des espaces d'adressage utilisateur et noyau. La désactivation de cette fonctionnalité supprime le durcissement, mais améliore les performances des appels système et des interruptions.
  • nospectre_v2 - Désactivez toutes les atténuations pour la vulnérabilité Spectre variante 2 (prédiction de branche indirecte). Le système peut permettre des fuites de données avec cette option, qui équivaut à spectre_v2=off.
  • nospectre_v1 - Désactiver les atténuations pour Spectre Variant 1 (contournement de la vérification des limites). Avec cette option, des fuites de données sont possibles dans le système.
  • l1tf=off - Contrôlez l'atténuation de la vulnérabilité L1TF sur les processeurs concernés. La protection contre l'inversion PTE du noyau est activée sans condition et ne peut pas être désactivée. Désactive les atténuations de l'hyperviseur et n'émet aucun avertissement. Il supprime également la taille d'échange et la restriction de la limite de RAM disponible sur l'hyperviseur et le bare metal.
  • nospec_store_bypass_disable - Désactivez toutes les mesures d'atténuation pour la vulnérabilité de contournement de magasin spéculatif.
  • no_stf_barrier - Désactiver la barrière de transfert de magasin (PPC uniquement).
  • mds=off - Contrôlez l'atténuation de la vulnérabilité d'échantillonnage de données micro-architecturales (MDS).
  • tsx=on - Activer la prise en charge d'Intel TSX (Transactional Synchronization Extensions).
  • tsx_async_abort=off - Désactiver l'atténuation TAA (TSX Async Abort).
  • mitigations=off - Désactiver toutes les mesures d'atténuation.

Pour plus de détails sur chaque drapeau, effectuez une recherche rapide sur Google.

Après avoir ajouté le ou les paramètres du noyau, mettez à jour la configuration GRUB à l'aide de la commande :

$ sudo update-grub

Enfin, redémarrez le système :

$ sudo reboot

Sur les systèmes basés sur RPM comme CentOS et RHEL , éditez /etc/sysconfig/grub fichier :

$ sudo /etc/sysconfig/grub

Ajoutez les paramètres ci-dessus dans GRUB_CMDLINE_LINUX. Et puis mettez à jour la configuration GRUB à l'aide de la commande :

$ sudo grub2-mkconfig

Redémarrez enfin :

$ sudo reboot

Dans certains systèmes Linux, vous devrez peut-être ajouter ces paramètres de noyau dans "GRUB_CMDLINE_LINUX_DEFAULT="..." .

Nous avons maintenant désactivé toutes les atténuations Spectre et Meltdown. Cela augmentera un peu les performances de votre système, mais cela peut également exposer les utilisateurs à plusieurs vulnérabilités du processeur.

Vérifier si les atténuations Spectre/Meltdown sont désactivées

Nous pouvons utiliser "spectre-meltdown-checker" outil qui vous aide à identifier les vulnérabilités Spectre et Meltdown sous Linux. Il est disponible dans les dépôts officiels de certaines distributions Linux.

Sur Debian, Ubuntu :

$ sudo apt install spectre-meltdown-checker

Sur CentOS, RHEL :

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

Sur Fedora :

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

Après avoir installé spectre-meltdown-checker, exécutez-le en tant qu'utilisateur root ou avec les privilèges sudo pour vérifier si les atténuations Spectre et Meltdown sont désactivées :

Vous devriez voir un message comme ci-dessous.

[...]
> 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)

Alternativement, vous pouvez vérifier les vulnérabilités Spectre/Meltdown comme ci-dessous.

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

Exemple de résultat :

itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort

Et..

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

Exemple de résultat :

/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

vérifier les vulnérabilités Spectre et Meltdown

Exécutez quelques benchmarks et vérifiez les performances que vous gagnerez, puis décidez s'il vaut la peine de tout désactiver.

Comme je l'ai déjà averti, cette astuce est une option utile et judicieuse pour les ordinateurs domestiques ou mono-utilisateur. Mais non recommandé pour les systèmes de production.


Linux
  1. Comment configurer la virtualisation sur Redhat Linux

  2. Comment définir ou modifier le nom d'hôte du système sous Linux

  3. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  4. Comment puis-je exécuter un script Perl en tant que démon système sous Linux ?

  5. Comment faire fonctionner un script Python comme un service ou un démon sous Linux

Comment rendre un fichier exécutable sous Linux

Comment exécuter Windows 95 sous Linux

Comment naviguer plus rapidement dans les répertoires sous Linux

Comment rendre Debian Linux plus rapide

Comment répertorier les services sous Linux

Comment exécuter les packages .run et .bin dans le système Linux