Disabilita il demone di ridimensionamento della CPU "ondemand"


13

Ho un server che, a partire dall'aggiornamento a 10.04, ora esegue il demone di ridimensionamento della CPU "ondemand". Perché dovrebbe installarlo automaticamente? Non voglio che il mio server risparmi energia a spese delle prestazioni.


5
Stai scambiando il governatore di ondemand per quello di risparmio energetico.
Leon Nardella,

3
D'accordo con Leon. Ondemand accelera se c'è qualcosa da fare e rallenta se è inattivo. Non limita la capacità della CPU di cambiare velocità, ma ne approfitta.
maco,


Aumenta i tempi di risposta su un server prevalentemente inattivo.
Uno studente all'università il

Risposte:


32

Invece di disabilitare l'esecuzione dello /etc/init.d/ondemandscript (come suggerito da George) dovresti usare questo comando

sudo update-rc.d ondemand disable

Per fare in modo che il sistema init non avvii lo script, questo è il modo riconosciuto di farlo! La disabilitazione dell'autorizzazione exec ( sudo chmod -x /etc/init.d/ondemand) potrebbe essere sovrascritta se il pacchetto viene aggiornato.


Se lo faccio: sudo update-rc.d abilita altro_governatore, imposterà un regolatore desiderato permanente?
userDepth

5

Il ridimensionamento di frequenza non è statico. Non appena c'è lavoro da fare, la CPU entra in azione, gli stati P aumentano e tutto vola.

È abilitato perché è ampiamente visto come una buona cosa. Risparmia energia (ottimo per il portafoglio e l'ambiente). Mantiene il calore ( così importante in una sala server). Ed è piuttosto impercettibile.

Inoltre, sui moderni chip Intel, se hai il ridimensionamento puoi usare "turbo boost" dove un core funzionerà a velocità superiori a quelle di serie per un certo periodo. Questo è molto utile per picchi di lavoro a thread singolo. Senza il ridimensionamento abilitato, non si ottiene questo.


Quanto tempo impiega ondemand per scalare su un P4 Xeon?
Uno studente all'università il

Mi sono imbattuto in questa vecchia risposta e mentre sono d'accordo con Oli, ci sono casi utente specifici in cui vorresti disabilitare il ridimensionamento della CPU, ad esempio la registrazione audio. A meno che tu non abbia un bisogno specifico, lascialo a ondemand
Panther

Per caso c'è un modo per sapere quale processo cambia costantemente i valori min / max del ridimensionamento di frequenza? Cambia sempre e non so perché. vedi askubuntu.com/questions/800797/how-to-enable-turbo-boost
Sebastien Lorber

2

È possibile installare lo strumento debian rcconf :

sudo apt-get install rcconf

quindi disabilitare il servizio "ondemand" da lì.


Non riesco a trovare alcun avviso di deprecazione sullo strumento rcconf: ti manca il punto e hai fornito un URL completamente sbagliato. Non intendevo il modo di Arch di configurare gli script rc, ma piuttosto lo strumento debian e che sembra vivo e vegeto.
Manuel,

Grazie per averlo segnalato e fornito un link utile! (Ho cancellato il mio commento iniziale e sbagliato)
pazzo per il sgraziato

Modificata anche la risposta originale!
Manuel,

2

Impostare tutte le CPU su Performance Governor:

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | sudo tee $GOVERNOR; \
done

Tutti i governatori supportati dal kernel Linux:

  • performance Avvia la CPU alla massima frequenza.
  • powersave Avvia la CPU alla frequenza minima.
  • userspace Esegue la CPU alle frequenze specificate dall'utente.
  • ondemand Scala la frequenza in modo dinamico in base al carico corrente. Salta alla frequenza più alta e quindi eventualmente arretrare all'aumentare del tempo di inattività.
  • conservativo Scala la frequenza in modo dinamico in base al carico corrente. Scala la frequenza più gradualmente rispetto alla ondemand.
  • schedutil Selezione della frequenza della CPU basata su Scheduler

Vedi https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt


2
Nota, sudo echo > ...non fare quello che ti aspetti: askubuntu.com/q/230476/158442
muru,

1

Per far funzionare continuamente tutte le CPU alle massime prestazioni su un desktop o un server Ubuntu, eseguire:

sudo chmod -x /etc/init.d/ondemand

al prompt della shell e inserire la password. Questo disabilita lo script della shell che fa funzionare tutte le CPU alla velocità "OnDemand", rendendole predefinite alla massima velocità (Prestazioni). Sarà necessario riavviare affinché questo abbia effetto.

L'ho testato solo in Ubuntu Jaunty 9.04, ma dovrebbe funzionare e non causare problemi su nessuna versione di Ubuntu.

Penso che le impostazioni predefinite di Ubuntu siano strane per questo. Secondo me, un desktop o un server dovrebbero funzionare a tutta velocità.

Saluti, George


1
Non penso sia strano. Sebbene certamente lo smartphone sia lo scenario più critico per il risparmio energetico, ridurre il consumo di energia significa anche meno rumore della ventola in uno scenario desktop e meno calore da gestire in una sala server. Correre costantemente alla massima velocità è un po 'uno spreco, davvero necessario solo in rari casi in cui ondemandsi sbaglia.
Bobince,

@bobince - Probabilmente hai ragione, ma per un desktop ho notato che OnDemand fornisce una risposta lenta rispetto alle prestazioni e penso che il computer possa ancora dormire correttamente con la modifica sopra. Dovrebbe essere un'opzione in Sistema / Amministrazione o Sistema / Preferenze.
George Gesslein II,

Bene, l'unico posto che ha senso è sui laptop in cui il tempo di ricarica è ridotto e il tempo della batteria esteso ridimensionando la CPU.
LassePoulsen,

salvare l'ambiente, chiunque ??
pazzo per il natty

1

Su alcuni sistemi, il governatore "ondemand" è sfortunatamente rotto.

Questo è il caso di "CPU Q9300 quad-core Intel (R) Core (TM) 2 a 2,50 GHz" e kernel 2.6.32-42.

Il kernel pensa di poter impostare la frequenza individualmente per ciascuna CPU mentre l'hardware in realtà consente di impostare la frequenza solo su gruppi di più CPU (ad esempio CPU 0 e 1 insieme e CPU 2 e 3 insieme).

Potresti scoprire che il kernel non è a conoscenza di questo guardando i file / sys / devices / system / cpu / cpu * / cpufreq / influenzati_cpus che contengono "0", "1", "2", "3" anziché "0 1", "0 1", "2 3", "2 3".

L'effetto visibile di questa mancata corrispondenza è un processo a thread singolo che inizia a funzionare alla massima velocità su una CPU (il regolatore "ondemand" reagisce rapidamente), quindi, dopo circa 20 secondi (dipende dai dettagli di impostazione), perde parte della sua velocità.

Il motivo è che il sistema operativo, con il governatore "ondemand", riapplica periodicamente freq bassi sulle CPU inattive, senza aspettarsi che cambi anche implicitamente il freq della nostra CPU occupata. Non è nemmeno visibile quando guardi / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq o / proc / cpuinfo, il sistema operativo non ne è a conoscenza!

Pertanto, su questi sistemi la soluzione è tornare al semplice regolatore delle "prestazioni".

PS: Nel mio caso, far funzionare le CPU costantemente alla loro massima frequenza non ha cambiato nulla riguardo al rumore della ventola. Suppongo che quando una CPU è inattiva, una frequenza più bassa o più alta non avrà un grande impatto sul suo consumo di energia.


0

Ho un nuovo processore AMD Athlon II X4 631 (processore Fusion per socket FM1) e non risparmia energia (lo guardavo con un contatore di energia)! Non ho un core turbo, quindi non ho bisogno dell'impostazione ondemand. La maggior parte dei nuovi processori salva enery da sola.

Nel benchmarking, c'è una piccola differenza, nella gamma sull'1-2%, quando si confrontano la domanda e la prestazione.


Benvenuto in AskUbuntu! Potresti voler eseguire il backup delle tue dichiarazioni con statistiche / ricerche complete poiché la tua risposta potrebbe essere fraintesa come un'opinione piuttosto che una risposta ricercata.
Oyibo,

Anche questo è sbagliato, Apple si è messa nei guai questa settimana per rallentare i dispositivi per risparmiare energia
Xen2050

-1

Questo è vecchio, ma poiché nessuno lo ha menzionato, e per completezza, aggiungerò che l'argomento su come la CPU che gira alla massima velocità sprecherà energia, produrrà calore, rumore della ventola ecc. È SBAGLIATO .

Quasi tutte le CPU moderne, in particolare le CPU desktop / server, entreranno in modalità di sospensione profonda quando inattive (google corre in idle.).

Il ridimensionamento della tensione probabilmente risparmierà più energia, quindi sui laptop questo potrebbe aumentare leggermente il tempo di esecuzione, ma su desktop e server che eseguono il regolatore delle prestazioni andrà bene per la maggior parte degli utenti "normali" (che non eseguono server farm o simili.).

Uso performance gov con il mio i7-2600k e la temperatura della CPU è di solito intorno ai 30 C.


Anche questo è sbagliato. Monitora le temperature della CPU e cambia le frequenze per vedere di persona (a meno che il tuo sistema non lo implementi completamente / correttamente). Vedi anche il link Apple, suona come un normale ridimensionamento di frequenza / velocità
Xen2050

@ Xen2050, per vedere cosa per te? Implichi che quella CPU che gira a 70 gradi Celsius per 2 secondi, potrebbe consumare più energia di quella che gira 5-6 secondi a 60 gradi o qualcosa in quella direzione? Non è così semplice come monitorare la temperatura della CPU in un determinato momento.
Denis

@ Xen2050 il tuo link punta a iPhone, che è arco o processori completamente diversi. Ho indicato che il ridimensionamento della tensione in combinazione con un determinato governatore potrebbe aiutare sui laptop, ad esempio, e ho menzionato esplicitamente i desktop (Workstation) e i processori server, ma di fatto ciò di cui stavo parlando esiste anche sui telefoni da anni ormai ( La situazione è probabilmente più complicata in questo caso: potrebbe essere necessario un governatore adeguato affinché MPU utilizzi correttamente lo stato C / P.). Comunque leggi ancora una volta ciò che ho digitato, e google "corsa al minimo" e processore modalità sleep profondo.
Denis
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.