CPU频率控制
我有一个带有最新HWE内核(3.16.0-31-通用)的kubuntu 14.04和一个Xeon 1246v3处理器(基本上是支持ecc的i7 4770)。 该处理器的基本频率为3.5 ghz,最大涡轮频率为3.9 ghz。
我有以下问题:
1)我默认启用了intel p-states,这很好,但是你知道,对于p-states你只能得到两个调控器:performance和powersave。 如何手动设置允许的最大CPU频率 ?
2)如上所述,只有在加载一个核心的情况下,cpu才能运行在3.9。 在所有内核满负荷的情况下,它不应超过3.5 ghz。 但是,如果我发出命令watch -n 0 "cat /proc/cpuinfo | grep -i mhz"
,我看到所有四个核心始终处于3.9 ghz,这应该是不可能的。 怎么样?
谢谢!
您可以通过设置/sys/devices/system/cpu/cpu**N**/cpufreq/scaling_min_freq
设置最大和最小频率/sys/devices/system/cpu/cpu**N**/cpufreq/scaling_min_freq
和/sys/devices/system/cpu/cpu**N**/cpufreq/scaling_max_freq
详细信息在本文档中描述: https : //software.intel.com/sites/default/files/comment/1716807/how-to-change-frequency-on-linux-pub.txt
编辑:您可以使用cpufrequtils
包中的cpufreq-set
达到相同的目的: https : cpufrequtils
如果你的内核加载了正确的模块,上面提到的一切都有效:
# 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
问题1:如何手动设置允许的最大CPU频率?
例如,要将最大频率设置为3.5 GHz(禁用turbo)或3.9 GHz(启用turbo)的60%:
echo "60" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
问题2:我看到所有四个核心始终处于3.9 ghz,这应该是[NOT]不可能的。 怎么样?
它们并非同时全部活跃。 只有1个PLL,所有CPU始终处于相同的频率。 如果您看到3.9GHz,那么在采样时只有1个CPU处于C0状态。