CPU频率监控
cpupower
获取CPU频率数据
cpupower
工具提供了一个 monitor
命令参数可以实时显示所有处理器核心的CPU频率
没有任何参数执行:
cpupower monitor
则输出所有列信息,类似:
| Nehalem || SandyBridge || Mperf || Idle_Stats
PKG|CORE| CPU| C3 | C6 | PC3 | PC6 || C7 | PC2 | PC7 || C0 | Cx | Freq || POLL | C1 | C1E | C3 | C6
0| 0| 0| 0.46| 63.41| 0.00| 0.00|| 0.00| 0.00| 0.00|| 11.80| 88.20| 1305|| 0.00| 0.44| 0.83| 2.67| 84.93
0| 0| 24| 0.46| 63.50| 0.00| 0.00|| 0.00| 0.00| 0.00|| 7.14| 92.86| 1411|| 0.00| 0.70| 0.76| 0.94| 90.82
0| 1| 1| 0.52| 79.61| 0.00| 0.00|| 0.00| 0.00| 0.00|| 1.78| 98.22| 1221|| 0.00| 2.74| 1.25| 0.11| 94.57
0| 1| 25| 0.52| 79.69| 0.00| 0.00|| 0.00| 0.00| 0.00|| 5.08| 94.92| 1210|| 0.00| 0.56| 0.74| 0.85| 92.98
...
可以指定显示指定监控项,一般我们会查看主频(位于
Mperf
监控项):cpupower monitor -m Mperf
则输出类似:
| Mperf
PKG|CORE| CPU| C0 | Cx | Freq
0| 0| 0| 2.63| 97.37| 1198
0| 0| 24| 5.19| 94.81| 1198
0| 1| 1| 1.58| 98.42| 1198
0| 1| 25| 3.51| 96.49| 1198
0| 2| 2| 1.20| 98.80| 1218
0| 2| 26| 5.33| 94.67| 1200
...
最后一列是各个CPU core当前主频,是从处理器MSR寄存器读取数值,所有精度有一定保证,可以作为CPU主频监控数据读取
如果要持续观察,可以结合
watch
命令:watch cpupower monitor -m Mperf
/proc/cpuinfo
提供了CPU频率数据
执行以下命令可以从
/proc/cpuinfo
获取当前CPU核心主频数据:cat /proc/cpuinfo | grep "cpu MHz"
输出类似:
cpu MHz : 1203.530
cpu MHz : 1198.710
cpu MHz : 1220.605
cpu MHz : 1407.477
...