如何查看 Mac 温度与风扇转速
macOS 没有内建的 CPU 温度和风扇转速面板,但会告诉你系统是否正承受散热压力、是否开始限制性能,第三方工具可以显示传感器读数,不过名称、位置和正常范围都会随机型变化。
Apple 也提醒这些读数不是机身表面温度,不能单独用来诊断硬件,脱离工作负载和变化趋势只看一个温度,很容易误判。
四条路,各自能回答什么
| 方式 | 能给你 | 给不了 | 代价 |
|---|---|---|---|
| 活动监视器 | 是哪个进程在发热、能耗影响 | 任何温度、任何风扇转速 | 无,系统自带 |
pmset -g therm |
macOS 有没有记录到散热或性能压力 | 具体度数、传感器名称 | 无,不要管理员权限 |
sudo powermetrics |
一次有限采样的功耗与散热压力细节 | Apple 芯片上稳定的 CPU 或 GPU 温度 | 要管理员密码 |
| 传感器监控工具 | 机型支持范围内的具名读数和风扇转速 | 一个能搬到别的 Mac 上的阈值 | 装第三方应用,且分机型 |
| Apple 诊断 | 来自 Apple 自己测试的硬件结论 | 实时监控 | 重启一次 |
顺序比工具更要紧,负载解释了大部分热量,压力告诉你 macOS 有没有已经在反应,而一个度数只有在你知道前两件事之后才读得懂。
活动监视器能看到什么
「活动监视器」位于「应用程序 > 实用工具」,打开 CPU 页并按 %CPU 排序,就能看到谁在让 Mac 发热,它还会显示内存压力和能耗影响。
这里不显示温度或风扇 RPM,它能找到热量来源,却不是温度计,如果高占用进程看不懂,可以参考Mac 常见后台进程分别做什么。
先看负载和散热压力
无需管理员权限,即可查看 macOS 记录的散热状态:
pmset -g therm
机器不热的时候每一行都是否定句,而这本身就是答案:
Note: No thermal warning level has been recorded
Note: No performance warning level has been recorded
Note: No CPU power status has been recorded
一旦真的记录到压力,那是系统自己的控制判断,通常比拿某个传感器与网上的通用阈值比较更有用。
需要更多功耗与散热上下文时,取一次有限采样:
sudo powermetrics --samplers thermal,cpu_power -n 1
只在需要诊断时跑它,用空载和一段可重复的负载做对照,而不是让一个特权采样器一直开着。powermetrics 自己标明功耗数字是估算值,所以不要拿它的绝对值去比较两台不同的 Mac。
Apple 芯片为何读不到统一温度
在一些较老的 Intel 版本 macOS 上,sudo powermetrics --samplers smc 能吐出传感器读数,而在现在的 Apple 芯片机器上这个采样器已经没有了,拒绝也很干脆,不是给你一片空输出:
powermetrics --samplers smc
# powermetrics: unrecognized sampler: smc
powermetrics 仍然能报散热压力,但不会给出一个稳定的 CPU 或 GPU 摄氏度。Apple 芯片上没有公开且免特权的接口提供统一的传感器映射,这也是第三方工具必须逐机型适配的原因。
为什么不同工具的读数会不同
Mac 的散热管理把计算单元、存储、电池等位置附近的传感器与功耗、风扇控制放在一起,Intel 和 Apple 芯片暴露的传感器键不同,部分 MacBook Air 机型没有风扇。第三方监控用的是分机型或非公开接口,所以两个工具挂着同样的「CPU 温度」标签,读的可能是不同的传感器,而转速只在有风扇并且暴露转速计的机型上才有意义。
风扇转速怎么读,以及它说明不了什么
风扇转速是这份清单里最容易读反的数字,因为它的含义和直觉相反:风扇转起来是散热系统在工作,不是机器出了问题;持续满负载而风扇一声不响,那才是值得查的读数。常见的就三种情况:
- 根本没有风扇。 M1 之后的 MacBook Air 全系无风扇,靠机身导热,所以没有转速可读,负载下机身发烫是设计如此。
- 负载时升起来,之后落下去。 这是预期形状,真正该问的是负载撤掉之后多久降下来,而不是峰值转到了多少。
- 空载却一直满转。 这一种要处理,先查有没有跑飞的进程,再查进风口是不是被挡住,最后才怀疑传感器故障,顺序别反。
风扇曲线归固件管,保持默认是对的。手动控制可以在一段已知的持续负载里拿噪音换余量,但它修不好被挡住的风道、坏掉的传感器,也修不好一个空载时就在发热的源头。
怎样判断读数是否异常
没有一个适用于所有 Mac、所有传感器的「安全 CPU 温度」。要记就四件事一起记:传感器名称、当时的负载、散热压力,以及性能或风扇行为有没有变化。编译时短暂冲高很正常,空载时读数一路往上又找不到主人,才是更有价值的证据。
活动监视器加 powermetrics 能给出负载和压力,像 Mole 的「状态」这类监控工具会在机型支持时补上温度与风扇趋势。
如果温度对你的工作真的要紧,就留一份自己的基线:同一个具名传感器、同样的环境、同样的电源模式、同样的风扇状态和散热压力,分别记下空载和一段可重复负载下的数字,以后只跟这份基线比。别的机型、别的传感器名称、别的室温下得到的数字,都不是这台机器的界限。
Apple 唯一公开的数字是房间而不是芯片,它的工作温度说明把正常环境温度定在 10 到 35 摄氏度之间,并建议轻负载下发热时先看 CPU 活动,把机器放在通风的稳固表面上用。
真的发烫时,按这个顺序来
- 先找到主人。 活动监视器,CPU 页,按 %CPU 排序,大多数热量背后只有一个进程,退掉对的那个问题就结束了。
- 看压力,不是看度数。
pmset -g therm会说 macOS 有没有已经在限制性能,什么都没记录就说明是热,不是被限速。 - 先排除物理原因。 软表面、被挡住的出风口、太阳直射、超过 35 度的房间、正在充电,这些都会先把底噪抬上去,再谈软件解释。
- 只跟自己的基线比。 同一个传感器、同一段负载、同一个房间,另一台机型的数字不是这台机器的证据。
- 该问硬件就问硬件。 反复关机、轻负载就报散热警告、风扇有异响或从不转、什么都没跑还一直烫,这些是送修信号。在认定「清个缓存」或「自定义风扇曲线」能解决之前,先跑一次 Apple 诊断。
一套可重复的温度检查
先记下空载时的负载与散热状态,跑一段固定的工作负载,取一次有限的压力采样,再对照冷却过程。如果用传感器监控,就在同一台 Mac 上比同一个具名传感器,而不是把别的机型的阈值搬过来。趋势、限速、噪音和负载归属,都比单独一个温度数字说明更多。
常见问题
Mac 多少度算太高?
没有公开的逐传感器上限,网上找到的任何一个数字,都属于另一台机型和另一个传感器标签。macOS 愿意回答的是散热压力:pmset -g therm 没记录到警告,就说明机器是热而不是在被限速。Apple 自己公开的范围是房间的 10 到 35 摄氏度。
为什么我的 MacBook Air 读不到风扇转速?
M1 之后的 MacBook Air 按设计就没有风扇,靠机身散热,没有转速计可报,所以监控工具在这些机型上不显示 RPM 是对的,不是坏了。
查温度需要管理员密码吗?
最有用的那两步不需要。活动监视器和 pmset -g therm 什么都不用,只有 powermetrics 要 sudo,这也是它值得只取一次有限采样、而不是一直开着的原因。
为什么两个监控软件显示的 CPU 温度不一样?
因为它们读的不是同一个传感器。Apple 芯片暴露的传感器键很多且没有公开映射,每个工具各挑一个,然后都标成「CPU」。同一个工具在同一台机器上前后比较是有意义的,跨工具比较没有。
风扇很响是不是坏了?
单看响不是。负载下风扇升起来正是散热在工作,值得注意的是空载时一直满转、有异响,或者有风扇的机型上它从来不转。