我正在使用Debian 8 amd64机器进行基准测试.在实验过程中,我希望CPU以固定频率(最好是可能的最大频率)运行.这将排除CPU时钟速度作为结果变化的来源.
The CPUfreq governor “performance” sets the CPU statically to the
highest frequency within the borders of scaling_min_freq and
scaling_max_freq.
遗憾的是,未提供有关scaling_min_freq和scaling_max_freq的更多详细信息.希望它无关紧要,因为使用的CPU频率是间隔的最大值.
所以我使用cpufreq-set启用了这个调控器:
$cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
为了更好的衡量,我还在BIOS中禁用了turbo boost模式:
$cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
基于以上对性能调控器的描述,我预计CPU时钟速度不会有波动.然而,如果我反复运行cpufreq-info,我会看到时钟速度波动:
$cpufreq-info | grep 'current CPU fr'
current CPU frequency is 4.00 GHz.
current CPU frequency is 3.99 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 4.00 GHz.
$cpufreq-info | grep 'current CPU fr'
current CPU frequency is 4.00 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 3.96 GHz.
$cpufreq-info | grep 'current CPU fr'
current CPU frequency is 4.00 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 3.94 GHz.
$cpufreq-info | grep 'current CPU fr'
current CPU frequency is 4.01 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 4.00 GHz.
current CPU frequency is 3.98 GHz.
这种波动是由于硬件,BIOS,内核还是其他因素造成的?有没有办法设置CPU频率,使其根本不会波动?