J'ai un kubuntu 14.04 avec le dernier noyau HWE (3.16.0-31-generic), et un processeur Xeon 1246v3 (qui est essentiellement un i7 4770 avec le support ecc). Le processeur a une fréquence de base de 3,5 GHz et une fréquence turbo maximale de 3,9 GHz.
J'ai les questions suivantes:
1) Les p-states d'Intel sont activés par défaut, ce qui est correct, mais vous savez qu'avec les p-states, vous n'obtenez que deux gouverneurs: performance et powersave. Comment puis-je définir manuellement la fréquence CPU maximale autorisée?
2) Comme indiqué ci-dessus, le processeur devrait pouvoir fonctionner à 3,9 uniquement avec un seul noyau chargé. Avec une charge complète sur tous les cœurs, il ne devrait pas pouvoir dépasser 3,5 GHz. Mais si je lance la commande watch -n 0 "cat /proc/cpuinfo | grep -i mhz"
, je constate que les quatre cœurs sont constamment à 3,9 GHz, ce qui devrait être impossible. Comment ça
Merci!
Vous pouvez définir les fréquences maximales et minimales en définissant /sys/devices/system/cpu/cpu**N**/cpufreq/scaling_min_freq
et /sys/devices/system/cpu/cpu**N**/cpufreq/scaling_max_freq
Les détails sont décrits dans ce document: https://software.intel.com/sites/default/files/comment/1716807/how-to-change-frequency-on-linux-pub.txt
Edit: Vous pouvez atteindre la même chose en utilisant cpufreq-set
dans le package cpufrequtils
: https://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq-set.html
Question 1: Comment définir manuellement la fréquence maximale autorisée du processeur?
Par exemple, pour définir la fréquence maximale sur 60% de 3,5 GHz (turbo désactivé) ou de 3,9 GHz (turbo activé):
echo "60" | Sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
Question 2: Je vois que TOUS les quatre cœurs sont constamment à 3,9 GHz, ce qui ne devrait [PAS] être impossible. Comment ça
Ils ne sont pas tous actifs en même temps. Il n'y a qu'une seule PLL et tous les processeurs sont toujours à la même fréquence. Si vous voyez 3.9GHz, alors 1 seule CPU était à l'état C0 au moment du prélèvement de l'échantillon.
tout ce qui est mentionné ci-dessus fonctionne si votre noyau a les bons modules chargés:
# CPU frequency control Driver
modprobe acpi_cpufreq
modprobe mperf
# CPU Frequency scaling modules
modprobe cpufreq_conservative
modprobe cpufreq_ondemand
modprobe cpufreq_performance
modprobe cpufreq_powersave
modprobe cpufreq_stats
modprobe cpufreq_userspace
modprobe freq_table