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
...