正文
物理机和虚拟机上CPU睿频的区别
关于睿频
睿频是指当启动一个运行程序后,处理器会自动加速到合适的频率,
而原来的运行速度会提升 10%~20% 以保证程序流畅运行的一种技术。
一般max的睿频不能超过特别长的时间.
他的能耗和TDP的影响都比较大.
睿频与很多环境和硬件相关:
1. 供电必须足够
2. 主板BIOS必须支持.
3. 没有使用节约电力的模式.
4. 机器所在机房的温度不能太高.机器的散热要好.
5. 操作系统支持动态调整.
部分结论
物理机可以实现动态调频
但是虚拟机为了稳定. 主机层面查不到任何频率变动的情况.
充分怀疑. 虚拟机仅能够有物理机的默频的能力
然后通过时间片进行轮询给出.
所以虚拟机 就算是不超售也可能比物理机损耗 15%的睿频性能.
如果超售 贼根据超售比率, 仅有 1/超售比率 的性能.
所以物理机可以看主频核心数
虚拟机还要问一下超售比率.
昨天同事问exadata. 查询了下oracle的官方资料
一体机的虚拟机支持200%的超售比率.
ESXi的虚拟机最高支持 32倍的超售比率 也就是 3200%.
Intel物理机器上面的睿频-1
公司内有一台服务器, CPU型号为 Intel 6150 2.7Ghz
官方资料里面 最高睿频为: 3.7GHz
lscpu能够看到他的部分信息
型号名称: Intel(R) Xeon(R) Gold 6150 CPU @ 2.70GHz
步进: 4
CPU MHz: 1438.659
CPU max MHz: 3700.0000
CPU min MHz: 1200.0000
BogoMIPS: 5400.00
CPU MHz : 应该是当前CPU的频率. 可以看到他是一个动态的数据.
BogoMIPS: 是默认频率的两倍的简单管理.
最高和最低的频率都有相关的信息存在.
查看uptime
08:38:24 up 274 days, 23:11, 5 users, load average: 1.59, 1.65, 1.50
可以通过如下目录查看每个CPU的信息
cd /sys/devices/system/cpu/cpu{n}/cpufreg/
其实可以简单算一下平均数
find /sys/devices/system/cpu -iname cpuinfo_cur_freq -exec cat {} \; \
|awk '{sum += $1} END {printf "NR = %d,Average = %3.3f\n",NR,sum/NR}'
我这边得出的结果为:
NR = 144,Average = 2714841.347
第二次测试为:
NR = 144,Average = 2459711.347
最低到过:
NR = 144,Average = 2097202.590
Intel物理机器上面的睿频-1
我开始SPECJVM2008 进行全核心的压力测试:
[root@testsvr116 SPECjvm2008]# uptime
08:46:37 up 274 days, 23:19, 5 users, load average: 203.43, 65.28, 23.89
[root@testsvr116 SPECjvm2008]# find /sys/devices/system/cpu -iname cpuinfo_cur_freq -exec cat {} \; |awk '{sum += $1} END {printf "NR = %d,Average = %3.3f\n",NR,sum/NR}'
NR = 144,Average = 3113466.535
可以看到比较奇怪的现象.
主频是 311/270 提升了大约 15%
但是看 uptime的 load average 却是 203/144 提示了40%
最高到了:
08:48:49 up 274 days, 23:21, 5 users, load average: 296.08, 149.65, 60.44
提升了一倍有余.
所以可以简单认为. 在物理机器的请款下Golden 6150 四路服务器, 物理机器可以较长时间的 动态提升 15%的性能.
但是全核心无法达到3.7Ghz的最高频率, 仅能够达到3.1G左右的睿频.
虚拟机的情况
ESXi的虚拟机
型号名称: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
BIOS Model name: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
CPU 系列: 6
型号: 85
每个核的线程数: 1
每个座的核数: 8
座: 2
步进: 7
BogoMIPS: 4589.21
没找到睿频CPU的查看地方, 可以充分怀疑, ESXi 不太使用睿频相关的特性.
阿里云虚拟机
AMD和Intel的CPU都没有找到睿频相关的地方.
倚天710 找到了如下目录
/sys/devices/system/cpu/cpufreq/policy0
但是max 和 min 以及 cur 都是 2.75Ghz
也就是说 阿里云全系列也不支持睿频的功能.
验证了下云海OS 宿主机的CPU也是支持动态调频的
但是虚拟机也还是不支持.