Sto usando una macchina Debian 8 amd64 per il benchmarking. Durante la sperimentazione, vorrei che la CPU funzionasse a una frequenza fissa (preferibilmente il massimo possibile). Ciò escluderà la velocità di clock della CPU come fonte di variazione nei risultati.
Dopo alcune letture, sembra che la cosa giusta da fare sia cambiare il regolatore della CPU in performance
, che è descritto qui nella documentazione del kernel Linux :
Il "performance" del regolatore CPUfreq imposta la CPU staticamente alla massima frequenza entro i limiti di scaling_min_freq e scaling_max_freq.
Purtroppo, ulteriori dettagli scaling_min_freq
e scaling_max_freq
non vengono forniti. Eventualmente non dovrebbe importare, poiché la frequenza della CPU utilizzata è il valore massimo dell'intervallo.
Quindi ho abilitato questo governatore usando cpufreq-set:
$ cat / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor prestazione prestazione prestazione prestazione
E per buona misura, ho anche disabilitato la modalità turbo boost nel bios:
$ cat / sys / devices / system / cpu / intel_pstate / no_turbo 1
Sulla base della descrizione sopra del regolatore delle prestazioni, non mi aspetto alcuna fluttuazione nella velocità di clock della CPU. Tuttavia, se corro ripetutamente cpufreq-info
, vedo la velocità del clock fluttuare:
$ cpufreq-info | grep 'current CPU fr' la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 3,99 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 4,00 GHz. $ cpufreq-info | grep 'current CPU fr' la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 3,96 GHz. $ cpufreq-info | grep 'current CPU fr' la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è 3,94 GHz. $ cpufreq-info | grep 'current CPU fr' la frequenza attuale della CPU è di 4,01 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 4,00 GHz. la frequenza attuale della CPU è di 3,98 GHz.
Questa fluttuazione è dovuta all'hardware, al BIOS, al kernel o ad altri fattori? C'è un modo per impostare la frequenza della CPU in modo che non fluttui affatto?