误区:睿频就是所有的cpu都能达到最大频率
INTEL睿频步骤:
intel使用时intel_pstate的技术来管理cpu的变频,通过下面的命令可以查看使能情况(intel-2697 v4)
# ls /sys/devices/system/cpu/intel_pstate/
max_perf_pct min_perf_pct no_turbo num_pstates turbo_pct
# cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
从参数看,intel的软件层面上使能了睿频。no_turbo为“1”是关闭。但是使能了performance模式,测试后cpu没能达到最大的CPU频率。步骤如下:
# cpupower -c all frequency-set -g performance
# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
(一共72个)
#stress --cpu 72 &
# cat /proc/cpuinfo | grep -i mhz
cpu MHz : 2799.980
cpu MHz : 2799.980
(一共72个)
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
3600000
从上面看,使能performance后cpu能够达到2.8GHZ,而没有达到最大值是3.6GHZ。
intel的CPU在performance下不能达到最大频率的原因
从上面可以看出来当使能了turbo后,然后命令行使得cpu达到performance,跑每个逻辑cpu上都跑一个stress程序。每个cpu实际能够达到2.8GHZ,离最大测cpu频率(3.6GHZ)还有0.8HZ。
测试的结果是如果1个cpu达到繁忙时,cpu可以达到3.6HZ。如果繁忙的任务比较多的话,cpu会自动降频,当所有cpu都繁忙时,那么一直降到2.8GHZ为止。理论依据如下:
不能达到3.6HZ是硬件原因,硬件上会控制整个CPU的功耗(比如,都是3.6GHZ可能会导致整体过热,超出cpu承受的能力),cpu的硬件会直接降频。降频是按照阶梯降频依次降频的。
intel睿频计算方法:
base Frequency + over base frequency
这是intel的E5系列的cpu的睿频图。本次测试是以E5-2697为准。睿频的阶梯从+13到+5。从图上可知当2个core繁忙时,这2个core自动睿频到3.6GHZ(2.3GHZ + 13*100MHZ = 3.6GHZ)。当达到8个core繁忙时,cpu频率为2.3GHZ+5*100=2.8GZH。以后无论多繁忙都是2.8GHZ
所以,请那些因为测试过程中,看到没有全部的cpu达到最大频率的兄弟们,停止无休止的各种验证吧。intel 的cpu是不能同时达到最大频率的。