GNU/Linux >> Linux Esercitazione >  >> Linux

Come rendere il sistema Linux più veloce su CPU Intel

Probabilmente hai sentito parlare di Meltdown e Vulnerabilità dello spettro che ha influenzato molti processori moderni, inclusi alcuni processori Intel, AMD, System Z, Power e ARM. Per fortuna, gli sviluppatori del kernel hanno rilasciato patch di sicurezza per risolvere i problemi di Meltdown/Spectre. Nelle recenti versioni del kernel, le patch sono implementate per impostazione predefinita. Anche se le patch di sicurezza aiutano a mitigare le vulnerabilità, hanno anche influito sulle prestazioni del sistema. Sì, le attenuazioni causeranno un calo delle prestazioni. Se sei sicuro che i tuoi sistemi siano ben protetti e desideri ogni grammo di prestazioni che puoi ottenere dal tuo sistema personale, questa guida è per te. Questa breve guida spiega come rendere più veloce il sistema Linux su CPU Intel disattivando le mitigazioni Spectre e Meltdown.

Una parola di cautela

Prima di implementare la seguente soluzione, devo avvertirti:QUESTO È ALTAMENTE NON SICURO e NON RACCOMANDATO . Ciò disabiliterà tutte le attenuazioni di Spectre e Meltdown sulle CPU Intel e lascerà i tuoi sistemi Linux completamente aperti a tutti i rischi per la sicurezza. A meno che tu non sappia chiaramente cosa stai facendo, non farlo. Sei stato avvisato!

Se semplicemente non ti interessa la sicurezza, vai avanti e disabilita le attenuazioni come descritto di seguito.

Rendi il sistema Linux più veloce su CPU Intel

Modifica il tuo file GRUB utilizzando il tuo editor di testo preferito.

Su Debian , Ubuntu :

$ sudo nano /etc/default/grub

Se stai utilizzando Linux Kernel versione 5.1.13 e successive, aggiungi/modifica il seguente parametro Kernel come di seguito:

GRUB_CMDLINE_LINUX="mitigations=off"

Ciò disabiliterà tutte le attenuazioni CPU opzionali. Ciò migliora le prestazioni del sistema, ma può anche esporre gli utenti a diverse vulnerabilità della CPU.

Se stai utilizzando versioni del kernel precedenti alla 5.1.13, aggiungi/modifica invece quanto segue:

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"

Parametri del kernel per disabilitare tutte le mitigazioni Spectre e Meltdown

Questi sono i parametri del kernel che puoi utilizzare per disabilitare tutte le mitigazioni Spectre/Meltdown che stanno rallentando il tuo sistema Linux.

Scopri cosa fa ogni bandiera:

  • noibr - Disabilita la speculazione limitata del ramo indiretto nel microcodice.
  • noibpb - Disattiva le barriere di previsione dei rami indiretti.
  • nopti - È uguale a pti=off. Tabella delle pagine di controllo Isolamento degli spazi degli indirizzi dell'utente e del kernel. La disattivazione di questa funzione rimuove il rafforzamento, ma migliora le prestazioni delle chiamate di sistema e degli interrupt.
  • nospectre_v2 - Disattiva tutte le attenuazioni per la vulnerabilità Spectre variante 2 (previsione del ramo indiretto). Il sistema può consentire fughe di dati con questa opzione, che equivale a spectre_v2=off.
  • nospectre_v1 - Disabilita le mitigazioni per la variante Spectre 1 (bypass controllo limiti). Con questa opzione sono possibili perdite di dati nel sistema.
  • l1tf=off - Mitigazione del controllo della vulnerabilità L1TF sulle CPU interessate. La protezione dall'inversione PTE del kernel è abilitata incondizionatamente e non può essere disabilitata. Disabilita le attenuazioni dell'hypervisor e non emette alcun avviso. Riduce anche la dimensione dello scambio e la limitazione del limite di RAM disponibile sia sull'hypervisor che sul bare metal.
  • nospec_store_bypass_disable - Disabilita tutte le attenuazioni per la vulnerabilità Speculative Store Bypass.
  • nessuna_stf_barriera - Disabilita la barriera di inoltro al negozio (solo PPC).
  • mds=off - Mitigazione del controllo per la vulnerabilità del campionamento dei dati della microarchitettura (MDS).
  • tsx=on - Abilita il supporto TSX (Transactional Synchronization Extensions) di Intel.
  • tsx_async_abort=off - Disattiva la mitigazione TAA (TSX Async Abort).
  • mitigazioni=off - Disattiva tutte le attenuazioni.

Per maggiori dettagli su ciascuna bandiera, fai una rapida ricerca su Google.

Dopo aver aggiunto i parametri del kernel, aggiorna la configurazione di GRUB usando il comando:

$ sudo update-grub

Infine, riavvia il sistema:

$ sudo reboot

Su sistemi basati su RPM come CentOS e RHEL , modifica /etc/sysconfig/grub file:

$ sudo /etc/sysconfig/grub

Aggiungi i parametri sopra in GRUB_CMDLINE_LINUX. E quindi aggiorna la configurazione di GRUB usando il comando:

$ sudo grub2-mkconfig

Infine riavvia:

$ sudo reboot

In alcuni sistemi Linux, potrebbe essere necessario aggiungere questi parametri del kernel in "GRUB_CMDLINE_LINUX_DEFAULT="..." .

Ora abbiamo disabilitato tutte le mitigazioni di Spettro e Meltdown. Ciò aumenterà un po' le prestazioni del tuo sistema, ma potrebbe anche esporre gli utenti a diverse vulnerabilità della CPU.

Verifica se le mitigazioni Spectre/Meltdown sono disabilitate

Possiamo usare "spectre-meltdown-checker" strumento che ti aiuta a identificare le vulnerabilità di Spectre e Meltdown in Linux. È disponibile nei repository ufficiali di alcune distribuzioni Linux.

Su Debian, Ubuntu:

$ sudo apt install spectre-meltdown-checker

Su CentOS, RHEL:

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

Su Fedora:

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

Dopo aver installato spectre-meltdown-checker, eseguilo come utente root o con privilegi sudo per verificare se le mitigazioni Spectre e Meltdown sono disattivate:

Dovresti vedere un messaggio simile a quello di seguito.

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

In alternativa, puoi controllare le vulnerabilità di Spectre/Meltdown come di seguito.

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

Risultato di esempio:

itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort

E..

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

Risultato di esempio:

/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

controlla le vulnerabilità di Spectre e Meltdown

Esegui alcuni benchmark e controlla quante prestazioni guadagnerai, quindi decidi se vale la pena disattivare tutto.

Come ho già avvertito, questo suggerimento è un'opzione utile e sensata per i computer domestici o per utente singolo. Ma non consigliato per i sistemi di produzione.


Linux
  1. Come impostare o modificare il nome host del sistema in Linux

  2. Linux:come eseguire un bootloader da Linux?

  3. Come posso eseguire uno script Perl come demone di sistema in Linux?

  4. Come far funzionare uno script Python come un servizio o un demone in Linux

  5. Come rendere il mio modulo Python disponibile a livello di sistema su Linux?

Come rendere eseguibile un file in Linux

Come eseguire Windows 95 su Linux

Come navigare nelle directory più velocemente in Linux

Come rendere Debian Linux più veloce

Come elencare i servizi su Linux

Come eseguire i pacchetti .run e .bin nel sistema Linux