GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso disabilitare il ridimensionamento della frequenza della CPU?

In quanto dipendente dalle prestazioni web, sono sempre alla ricerca di modi per migliorare le prestazioni del sistema e velocizzare le applicazioni web. E oggi condividerò con te la magia del ridimensionamento della frequenza della CPU e una guida pratica per disabilitare il ridimensionamento della frequenza della CPU per far funzionare il tuo sistema alla massima velocità della CPU.

Prima di approfondire come disabilitare il ridimensionamento della frequenza della CPU, cerchiamo di capire cos'è il throttling della CPU.

Cos'è il ridimensionamento della frequenza della CPU?

Da Kernel v. 2.6.18 (CentOS) e 2.6.32 (Ubuntu), è stata introdotta una nuova funzionalità chiamata Dynamic CPU frequency scaling (aka CPU throttling).

Questo ridimensionamento della frequenza della CPU consente a un processore di funzionare a una frequenza inferiore a quella massima consentita. Questo viene fatto solo per preservare il consumo energetico, ma lo svantaggio è che non sei in grado di utilizzare tutta la velocità della tua CPU.

Come posso trovare a quale velocità è in esecuzione la mia CPU?

Esegui questo comando, come vedi di seguito:

grep -E '^model name|^cpu MHz' /proc/cpuinfo

L'output dovrebbe essere simile a questo:

[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000

Come puoi vedere, la velocità della CPU originale è @ 3,40 Ghz, tuttavia la velocità della CPU in esecuzione in Mhz è di circa 1600. La CPU funziona a metà della sua velocità totale.

Questo può essere ottenuto anche con un fantastico pacchetto CPU chiamato cpufrequutils / cpupoweruitls

Installa cpupowerutils su CentOS/Debian

yum install cpupowerutils -y

Installa cpupowerutils su Ubuntu/Debian

apt-get install cpufrequtils

Ora esegui questo comando e ti mostrerà informazioni sulla velocità minima e massima della CPU, tra gli altri dettagli:

cpupower frequency-info

L'output previsto dovrebbe essere simile a questo:

[[email protected]:~]cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 1.60 GHz - 3.80 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 1.60 GHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: 1.60 GHz (asserted by call to hardware)
  boost state support:
    Supported: yes
    Active: yes
    3600 MHz max turbo 4 active cores
    3700 MHz max turbo 3 active cores
    3800 MHz max turbo 2 active cores
    3800 MHz max turbo 1 active cores

Disabilita il ridimensionamento della frequenza della CPU su Linux (RedHat e Ubuntu)

Vediamo come disabilitare il ridimensionamento della frequenza della CPU sulle piattaforme Linux più popolari.

Per utenti CentOS/RHEL

Modifichiamo la frequenza della cpu alla velocità massima disponibile con il seguente comando:

cpupower frequency-set -g performance

Vediamo se c'è di nuovo qualche cambiamento nella velocità di esecuzione della CPU:

[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3497.218
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3392.296
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3397.742
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 2283.578
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3457.640
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 2133.234
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.257
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3740.265
[[email protected]:~]

Come puoi vedere nel comando precedente, ora la CPU funziona più in alto di prima quando è necessario.

Un altro modo per farlo manualmente è eseguire questo comando che cambierà il regolatore della CPU dalla modalità "ondemand" alla modalità "prestazioni" per tutte le tue CPU:

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

Se il tuo sistema esegue uno qualsiasi dei demoni che controllano la velocità della CPU, interrompili semplicemente per far funzionare il tuo sistema alla massima velocità della CPU:cpuspeed, cpufreqd o powerd.

service cpuspeed stop

Per utenti Ubuntu/Debian

Modifica questo file e, se non esiste, crealo:

nano -w /etc/default/cpufrequtils

Aggiungi la seguente riga all'interno:

GOVERNOR="performance"

Salva premendo CTRL + X, quindi premi Y.

Passaggio successivo:disabilita il demone ondemand per evitare di perdere le modifiche dopo aver riavviato il server, esegui questo comando:

update-rc.d ondemand disable

È tutto. Controlla di nuovo le tue impostazioni con questo comando:

cpufreq-info

Conclusione

L'esecuzione della CPU alla massima velocità può davvero aumentare le prestazioni delle tue applicazioni. La maggior parte delle CPU moderne dispone già di ottimi sistemi di raffreddamento della CPU, quindi questo non dovrebbe essere un problema, tuttavia assicurati che ciò non causi un enorme consumo di energia extra o il surriscaldamento della CPU. Come puoi vedere, puoi disabilitare facilmente il ridimensionamento della frequenza della CPU sia per le distribuzioni basate su RedHat che su Debian. Fateci sapere se avete problemi o domande al riguardo.

Ulteriori letture:

  • Ridimensionamento della frequenza della CPU in Linux con cpufreq
  • Documenti per il ridimensionamento della frequenza della CPU di ArchLinux
  • Documentazione RedHat CPUFreq Governors
Come posso disabilitare il ridimensionamento della frequenza della CPU? è stata modificata l'ultima volta:11 aprile 2017 da Esteban Borges
Linux
  1. Come disabilitare Cryptswap?

  2. Come posso determinare l'attuale utilizzo della CPU dalla shell?

  3. Come posso sapere se mi trovo su uno schermo?

  4. Come posso vedere in quale core della CPU è in esecuzione un thread?

  5. Come posso disabilitare l'accesso a Internet per i programmi in esecuzione in Wine?

Come disabilitare lo scambio in Linux

Come disabilitare SELinux su CentOS?

CentOS / RHEL 6:come disabilitare IPv6

Come posso collegare simbolicamente un file in Linux?

Come ottenere l'utilizzo della CPU

Come posso monitorare il disco io?