核心说明
/proc/cpuinfo 不包含温度信息,无法用来直接监控 CPU 温度。Linux 下应使用 lm-sensors 的 sensors、内核 /sys/class/thermal 接口,或 Python 的 psutil.sensors_temperatures();Windows 则可通过 WMI/OpenHardwareMonitor 读取传感器数据。若仅需快速查看,BIOS/UEFI 的 Hardware Monitor 页面也可显示温度。
Linux 常用做法
- 使用 sensors 实时监控:安装并检测传感器后查看温度,例如
sudo apt-get install -y lm-sensors && sudo sensors-detect --auto
watch -n 1 “sensors | grep ‘°C’”
输出示例:
coretemp-isa-0000
Core 0: +47.0°C (high = +80.0°C, crit = +100.0°C)
- 直接读取内核 thermal 文件:温度值单位为毫摄氏度,需除以 1000
watch -n 1 “awk ‘{printf "%.1f°C\n", $1/1000}’ /sys/class/thermal/thermal_zone0/temp”
- 用 Python 获取并持续打印:
pip install psutil py-cpuinfo
python3 - <<‘PY’
import time, psutil
while True:
temps = psutil.sensors_temperatures()
for chip, entries in temps.items():
for e in entries:
print(f"{chip} {e.label or e.name}: {e.current:.1f}°C")
print(“-” * 30); time.sleep(2)
PY
以上方法分别基于 sensors、/sys 与 psutil,适合服务器与桌面环境的持续监控。
Windows 做法
- 使用 Python + WMI/OpenHardwareMonitor(推荐):
pip install wmi pywin32 py-cpuinfo
python3 - <<‘PY’
import wmi, time
try:
w = wmi.WMI(namespace=“root\OpenHardwareMonitor”)
while True:
for s in w.Sensor():
if s.SensorType == “Temperature” and “core” in s.Name.lower():
print(f"{s.Name}: {s.Value:.1f} °C")
print(“-” * 30); time.sleep(2)
except Exception as e:
print(“未获取到传感器数据,请确认已安装并运行 OpenHardwareMonitor:”, e)
PY
- 无 Python 时,可在 Windows 上运行 OpenHardwareMonitor 图形界面查看温度,或用 SpeedFan 等工具读取传感器并做基础告警。
快速排查与阈值参考
- 传感器未就绪:Linux 先运行 sudo sensors-detect;若仍无读数,检查主板/CPU 是否支持传感器、内核模块(如 coretemp)是否加载,或尝试其他 thermal_zone。
- 识别正确的 thermal_zone:不同设备路径可能不同,可先查看各 zone 的 type 或 label,再选择 CPU 对应的 zone 读取。
- 简单压力升温测试:用 stress 或 cpuburn 制造负载,观察温度上升与回落曲线,评估散热是否达标;若温度接近或超过标注的 high/crit 阈值,需检查风道、清灰、导热材料与散热器安装。
- 常见温度范围(视型号与环境而定):轻载约 30–50°C,满载常见 70–90°C;超过厂商标注的 Tjmax/crit 会触发降频或关机保护。