Table of Contents
Intel Turbo Boost介绍
Intel Turbo Boost翻译过来就是经常听到的英特尔睿频加速技术。就是在不超过cpu总功耗限制(TDP,Thermal Design Power)的情况下(当然也不超过其他各种电压、功率、电流、温度的限制),自动提升部分核心的运行频率,也就暂时提升了这些核心的性能。
因为有不超过TDP这个限制条件,所以自然就是需要提升频率的核心越多,频率提升的幅度就越少了。比如可以看下这个i7 6700的介绍,搜索”turbo frequency”,那么就会看到:
turbo frequency (1 core) 4,000 MHz (4 GHz, 4,000,000 kHz) +
turbo frequency (2 cores) 3,900 MHz (3.9 GHz, 3,900,000 kHz) +
turbo frequency (3 cores) 3,800 MHz (3.8 GHz, 3,800,000 kHz) +
turbo frequency (4 cores) 3,700 MHz (3.7 GHz, 3,700,000 kHz) +
这个turbo frequency是随着睿频的核心数目的增加而递减的。
确认是否支持Turbo Boost技术
- Turbo Boost技术是处理器的技术。去Intel官网查询处理器关于Turbo Boost技术相关的指标,如果有相关指标、说明,那么cpu就是支持的。
- 注意确认下BIOS里有没有Turbo Boost相关的设置
确认是否已经启用Turbo Boost
执行以下命令检查是否已经启用Turbo Boost:
cat /sys/devices/system/cpu/intel_pstate/no_turbo
如果上述命令输出是0,那么就启用了turbo boost,否则没有。
执行以下命令检查:
cpupower frequency-info
查看输出中的hardware limits的最高频率是否和处理器指标中的max turbo frequency相吻合。当然想要让处理器真的能够达到这个max turbo frequency,cpu speed governor也要选允许cpu运行到最高频率的类型。
如何开启、关闭Turbo Boost
在已经是使用intel_state驱动的情况下,可以在root帐号里通过
echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo
来启用或关闭(改成echo 1就好)turbo boost。
如果是使用acpi_cpufreq驱动,貌似需要通过读写下面这个值来启用、关闭turbo boost:
cat /sys/devices/system/cpu/cpufreq/boost
貌似想要获得turbo boost支持,最好使用intel_pstate这个驱动,acpi_cpufreq可能出现各种问题(个人感觉,没有找到明确的证据支持,只是遇到过用acpi_cpufreq驱动而没有成功启用turbo boost的情况)。
我一般使用/proc/cpuinfo里的频率信息来看当前cpu工作在哪个频率,不过据说用这个来验证是否启用turbo boost可能会出错(即/proc/cpuinfo里显示的频率不是cpu核心turbo boost后的实际运行频率),最好的办法是写个简单的耗cpu的小程序,看开启、关闭turbo boost后,程序耗时是否相同。
Intel Bay Trail CPU problem
对于部分处理器,ubuntu 14.04,16.04,16.10系统不支持比C1更深的idle状态,于是在这部分处理器上,当处理器尝试进入比C1更深的idle状态时,就会导致系统卡死。而一种直接的解决方案就是linux kernel arguments里添加上processor.max_cstate=1 intel_idle.max_cstate=1
这样的设置,让处理器最多只能进入C1的空闲状态。而睿频的效果是和active cores(即处于C0,C1状态的core)的数量相关的,active cores越少,获得睿频加速的核提升的运行频率越大。如果你的操作系统在linux kernel arguments里添加上了processor.max_cstate=1 intel_idle.max_cstate=1
这样的设置,那么就是说所有的核都是active的,在这种情况下,每个核只能获得最小程度的睿频加速。
- Intel Bay Trail CPU problem
- 关于何为active cores的介绍
- 可以通过
cpupower monitor sleep 10
来检查cpu处于各个状态的时间占比,比如可能获得下面这样的结果:
Available monitor Nehalem needs root access
Available monitor Mperf needs root access
sleep took 10.00307 seconds and exited with status 0
|Idle_Stats
CPU | POLL | C1 | C1E | C3 | C6 | C7s | C8
0| 0.07| 2.27| 6.60| 0.17| 3.01| 0.00| 83.13
4| 0.00| 3.53| 3.85| 0.40| 3.57| 0.00| 84.73
1| 0.00| 1.41| 19.29| 0.27| 2.77| 0.00| 71.74
5| 0.00| 1.53| 7.27| 0.26| 5.83| 0.00| 80.77
2| 0.00| 0.68| 2.66| 0.31| 3.67| 0.00| 88.66
6| 0.00| 2.57| 13.09| 0.40| 4.62| 0.00| 73.66
3| 0.00| 1.72| 6.22| 0.78| 6.08| 0.01| 80.50
7| 0.00| 4.03| 5.18| 0.67| 5.89| 0.95| 77.93
近期评论