sar -m 不支持监控单个物理核心的温度与频率,仅提供系统级温度(如封装/主板)和CPU域频率;需用 sensors 查核心温度、turbostat 或 sysfs 获取核心频率。
sar -m
本身不支持直接监控 CPU 温度或单个物理核心的实时温度与频率波动。
这是关键前提:sar 的
-m
选项(从 sysstat 12.7.0 起引入)仅用于报告
电源管理类指标
,如 CPU 瞬时/平均频率(
)、风扇转速(
)、输入电压(
)和设备温度(
)。但它的
子项是
系统级汇总温度
(如主板、SoC 或封装级),并非按物理核心(Core 0/1/2…)区分的独立温度值;其
子项也仅反映当前 CPU 域的运行频率,无法绑定到具体物理核心并追踪其动态波动。
要真正监控“特定物理核心”的温度与频率,需分两路配合使用
1. 核心温度:用 sensors + 定位 coretemp
安装并初始化 lm-sensors:
(接受默认选项)
运行
,查找含
的芯片名(如
)
该芯片下会列出
(整颗 CPU 封装温度)、
、
等——这些就是各物理核心的独立温度
想持续观察?用
每秒刷新一次
2. 物理核心频率:靠 /sys/devices/system/cpu/ + perf 或 turbostat
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
Linux 内核不直接暴露每个物理核心的实时运行频率到 sysfs;但可通过
查当前标称频率(单位 kHz),注意它可能滞后或被节能策略平滑
更准确的方法是使用
(来自
linux
-tools-common):
,输出中
列即为每个逻辑 CPU(可结合
映射到物理核心)的平均频率
若需毫秒级采样或关联性能事件,可用
推算实际工作频率
sar -m TEMP 和 FREQ 能做什么?
它们提供的是
系统层面的辅助参考值
:
输出类似
、
的温度读数,通常对应主板传感器或 CPU 封装(Package),可用于判断整体散热趋势,但不能告诉你 Core 3 是否比 Core 0 高 8°C
显示
(当前瞬时频率)和
(区间平均频率),反映 CPU 当前工作档位,适合看是否降频,但无法区分是哪个核心在高频跑
二者都依赖硬件支持(如 Intel RAPL、ACPI _TZD),老旧平台可能无输出
组合建议:轻量级长期记录方案
若需长期跟踪某物理核心温度+频率联动关系,推荐脚本化采集:
用
提取 Core 0 温度
用
获取 cpu0 当前频率
将两者时间戳对齐写入日志,再用 gnuplot 或 pandas 可视化波动曲线
避免用 sar -m 替代核心级指标——它不是设计来干这个的
FREQFANINTEMPTEMPFREQsudo apt install lm-sensors && sudo sensors-detectsensorscoretemp-isa-coretemp-isa-0000Package id 0Core 0Core 1watch -n 1 sensors/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freqturbostatsudo turbostat --interval 1 -I 10Avg_MHzlscpuperf stat -C 0 -e cycles,instructions sleep 1sar -m TEMP 1 5TEMP0TEMP1sar -m FREQ 1 5FREQ0AVGFREQsensors | awk '/Core 0/ {print $3}' | tr -d '+' | sed 's/°C//'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq