sensors显示出来的温度准确吗?如果有误差,误差值有多大?

各种窗口管理器和美化相关
回复
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#1

帖子 kashu » 2016-03-20 20:01

我笔记本电脑上跑了一些任务,CPU的负载基本是满的,并且需要几天几夜不间断地运行

问题1:sensors显示出来的温度准确吗?如果有误差,误差值有多大?

代码: 全选

kashu:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +60.0°C  (crit = +106.0°C)
temp2:        +60.0°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +64.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +65.0°C  (high = +87.0°C, crit = +105.0°C)
问题2:如果温度在70°C以内,一直这样下去,不会烧坏笔记本吧?


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#2

帖子 kashu » 2016-03-20 20:28

一般所指的cpu溫度,有可能有兩種不同的定義,一個是cpu外殼的溫度。cpu外殼的溫度是由靠近cpu表面附近的感應器探知的;另一種是cpu的核心溫度,指的是cpu內部的核心溫度,這是由cpu內部的感知器感知的。一般而言,核心是在外殼的包裹之下,且沒有風扇等散熱裝置的幫忙,溫度自然會較高,可能會高出20度以上。

但是很多情況,用一些測溫軟體測出來的溫度,可能會有很大的誤差,表面cpu溫度誤差可能較不明顯,但是核心溫度的測量,有時候可能會得出一些不可思議的數值。
via: http://save-coco.blogspot.sg/2009/09/cpu.html

不问了
我看这CPU温度至少已经到了90°C,显示个60几°C感觉不靠谱


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#3

帖子 vickycq » 2016-03-20 20:41

kashu 写了:不问了
我看这CPU温度至少已经到了90°C,显示个60几°C感觉不靠谱
基本靠谱
kashu 写了:问题2:如果温度在70°C以内,一直这样下去,不会烧坏笔记本吧?
不会烧坏
温度经常大幅变化可能造成芯片虚焊
如果散热器距离电池较近,会影响电池寿命
(冷热不均加剧电芯不一致性。恶性循环,某些电芯会提前挂掉,导致寿命大幅缩短)

参考
https://www.pugetsystems.com/labs/artic ... mance-606/
http://www.anandtech.com/show/2468/6
http://serverfault.com/questions/64956/ ... n-of-a-cpu
kashu 写了:问题1:sensors显示出来的温度准确吗?如果有误差,误差值有多大?
这个问题分为两部分:
1 - 处理器的温度传感器准确性
2 - lm-sensors 报告温度的准确性

1) 处理器的温度传感器准确性
猜测 基本准确

2) lm-sensors 报告温度的准确性
如果处理器温度传感器报告的数值未经校准,则需要标定
举一个例子,对于全志A20这款处理器,读取温度传感器寄存器值并加以转换的过程如下:
重置寄存器

代码: 全选

# echo 'f1c25000:27003f' > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write
# echo 'f1c25010:40000' > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write
# echo 'f1c25018:10fff' > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write
# echo 'f1c25004:10' > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write
读取寄存器

代码: 全选

# echo 'f1c25020' > /sys/devices/virtual/misc/sunxi-dbgreg/rw/read
$ tail -n 1 /var/log/syslog
May  6 10:08:48 cubietruck kernel: [ 1766.866356] 0x72c
进制转换

代码: 全选

$echo "ibase=16; 72C" | bc
1836
标定数值

代码: 全选

$ echo "scale=2; (1836-1447)/10" | bc
38.90
即温度为 38.90 摄氏度

这里面用到了标定基准值 1447。如基准值不准确,计算出的温度也不会准确

对于桌面处理器,常用的基准值为 Tj max
coretemp 会检测处理器的 Tj max,如检测不到,会猜测为 100 摄氏度。此时读出的数值可能不准确

参考
http://superuser.com/questions/464759/h ... -processor
http://www.techreaction.net/2009/10/14/ ... peratures/
http://mmaptonull.blogspot.com/2011/02/ ... onmax.html
https://bbs.archlinux.org/viewtopic.php?id=116615
https://bbs.archlinux.org/viewtopic.php?id=74830
https://bbs.archlinux.org/viewtopic.php?id=49442
http://forum.lemaker.org/forum.php?mod= ... d&tid=8137
http://www.cubieforums.com/index.php/topic,2493.0.html
上次由 vickycq 在 2016-03-20 21:00,总共编辑 2 次。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#4

帖子 自由建客 » 2016-03-20 20:59

会短命
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#5

帖子 kashu » 2016-03-20 21:07

谢谢!
虽然我不太确定显示出来的温度值准确度到底怎么样,但给我的信号是尽量把温度控下来会更好、更安全。

高温不仅使得CPU可能容易出现问题,高温还增加了PCB板附近的元器件的耗损,高温增加了各种问题出现的几率。

要么有一个低温的环境,要么有一个非常好的散热器(内置或外置),这样在长时间运行满负载的任务时,我觉得才能更放心点。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#6

帖子 kashu » 2016-03-20 21:15

@vickycq,让我感觉sensors不准确的原因还有一个
当我把高负荷的任务停止后,用sensors查看温度时,发现CPU温度很快地就下降到40多°C,温度下降真的有这么快吗?(人的温度都有37.5°C)
当然,这都是从我的主观看法和感受来说的。

代码: 全选

kashu:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +60.0°C  (crit = +106.0°C)
temp2:        +60.0°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +63.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +56.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +63.0°C  (high = +87.0°C, crit = +105.0°C)

代码: 全选

kashu:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +49.0°C  (crit = +106.0°C)
temp2:        +49.0°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +47.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +44.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +47.0°C  (high = +87.0°C, crit = +105.0°C)


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#7

帖子 vickycq » 2016-03-20 21:54

kashu 写了:CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
(high = +87.0°C, crit = +105.0°C)
根据规格表 http://ark.intel.com/products/67355/Int ... 0-GHz-rPGA
i5-3210M 的 Tj max 为 105 度
你的 sensors 报告 crit = +105.0°C
所以应该是准确的

参考 https://bugzilla.kernel.org/show_bug.cgi?id=75071

===============================
kashu 写了: 要么有一个低温的环境,要么有一个非常好的散热器(内置或外置),这样在长时间运行满负载的任务时,我觉得才能更放心点。
买一个主动散热垫即可,有一定效果
主动散热垫有两类,小尺寸多风扇 / 大尺寸单风扇
个人认为大尺寸单风扇较好
kashu 写了:高温不仅使得CPU可能容易出现问题,高温还增加了PCB板附近的元器件的耗损,高温增加了各种问题出现的几率。
只要不是超薄便携本,散热效率都比较高。我有一台超薄便携本,整机功率小于10W,但闲置时 58 度左右(室温 20 度),浏览网页则常年在 60 度以上。使用4年没有出现故障。
另一台常规尺寸笔记本,整机功率 20W 左右,但闲置温度从不会超过 50 度
kashu 写了: 让我感觉sensors不准确的原因还有一个
当我把高负荷的任务停止后,用sensors查看温度时,发现CPU温度很快地就下降到40多°C,温度下降真的有这么快吗?(人的温度都有37.5°C)
说明你的散热器热容量大,效率高
处理器本身热容量非常小。一旦停止产热,借助高效率的热管,大尺寸的散热片和风扇,温度下降非常快
上面提到的超薄便携本,虽然散热效率极差,但实测从 80 度降低到 60 度只需 15 秒

测试过程
将两个核心跑满,维持1分钟,处理器温度达到 80 度
用 watch -n 1 sensors 监视温度
迅速关闭负载进程并开始计时,降到60度停止计时 用时15秒
从 60 度降低到 58 度 用时约5分钟
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#8

帖子 kashu » 2016-03-20 22:05

嗯,正想买个主动散热垫呢

我的笔记本用了3年半了,到目前为止硬件上没出过任何问题,我还想多用几年
但我意识到长时间的高温运行可能容易出一些问题的,毕竟平时的使用习惯、保养直接影响着笔记本的使用寿命

vickycq 写了:说明你的散热器热容量大,效率高
处理器本身热容量非常小。一旦停止产热,借助高效率的热管,大尺寸的散热片和风扇,温度下降非常快

CPU那有一块很长的黄铜散热器,一直延伸到散热风扇那,应该算是热容量大吧。

主动散热垫,应该是「向下吸风」的比「向上吹风」的要更好吧?


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#9

帖子 vickycq » 2016-03-20 22:46

kashu 写了: CPU那有一块很长的黄铜散热器,一直延伸到散热风扇那,应该算是热容量大吧?
那个是热管,用于导热
有些超薄便携本的散热器设计十分奇葩,根本没有热管,完全用金属片导热。在华硕某些本子上见过这种设计。
kashu 写了: 主动散热垫,应该是「向下吸风」的比「向上吹风」的要更好吧?
一般主动散热垫风向有三种设计:向下吸风,向上吹风,多向循环
一般笔记本从D面散热孔吸入空气,再从散热器吹出。
如果散热垫向下吸风,会不会在D面和散热垫上表面之间形成一个低压区,影响笔记本吸入空气呢?
:What
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#10

帖子 kashu » 2016-03-20 23:17

vickycq 写了: 如果散热垫向下吸风,会不会在D面和散热垫上表面之间形成一个低压区,影响笔记本吸入空气呢?

想想也对,笔记本自带的风扇是从左侧面把风吹出来的,而笔记本内部的空气大多是从笔记本底部的散热孔进去的。
如果散热垫还向下吸风,好像有点相互冲突了。

在网上还看到有人说散热垫“没有向下吸风的,只有向上吹风的”。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#11

帖子 kashu » 2016-03-21 17:51

买了个散热垫,但还没到货。

想到CPU负载的高低会直接影响笔记本内部的温度,因此,在这期间,控制CPU温度的方法我就暂时交给了cpulimit
(Ubuntu的默认软件仓库中有这软件,cpulimit可以控制已经在运行的程序,也可以直接用cpulimit来启动一个程序,而且普通用户权限就可使用)
cpulimit -z -l 220 -- xxxxxx(因为我的是CPU是双核四线程,在指定220时温度刚好在60摄氏度以内,这个值得根据各自的情况来定)

另外,再加上一般常用软件的运行
top查看cpu idle,在30%左右浮动
watch -n1 sensors观察温度也没超过60摄氏度

这样既保证了笔记本温度不会飙得太高(在预想的指定温度内),也能放心地让我的任务不间断地跑下去,再加上一般的使用也不会有问题(不会出现卡顿) :Haha


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#12

帖子 vickycq » 2016-03-29 18:51

kashu 写了: 想到CPU负载的高低会直接影响笔记本内部的温度,因此,在这期间,控制CPU温度的方法我就暂时交给了cpulimit
(Ubuntu的默认软件仓库中有这软件,cpulimit可以控制已经在运行的程序,也可以直接用cpulimit来启动一个程序,而且普通用户权限就可使用)
cpulimit -z -l 220 -- xxxxxx(因为我的是CPU是双核四线程,在指定220时温度刚好在60摄氏度以内,这个值得根据各自的情况来定)
还有这种好东西,收藏了。:-)
发现 Debian/Ubuntu 软件源中自带的 cpulimit 没有 -i 选项,即将所有子进程纳入管理。只好自行编译了一个。
但使用中又发现自带的 -i 选项不好用,其会导致 cpulimit 进程占用大量资源,而且匹配子进程需要5~10分钟,对于动态管理并不合适。还会引发 dconf-service 进程的 fsync madness。
经过寻找,发现了这个脚本:http://ubuntuforums.org/showthread.php?t=992706
经过简单修改,加上了“温度”这一触发条件,用来限制 chromium 浏览器的使用率。

代码: 全选

#!/bin/bash
# ==============================================================
# CPU limit daemon - set PID's max. percentage CPU consumptions
# ==============================================================

# Variables
CPU_LIMIT=30        # Maximum percentage CPU consumption by each PID
DAEMON_INTERVAL=2   # Daemon check interval in seconds
BLACK_PROCESSES_LIST="chromium"   # Limit only processes defined in this variable. If variable is empty (default) all violating processes are limited.
WHITE_PROCESSES_LIST=   # Limit all processes except processes defined in this variable. If variable is empty (default) all violating processes are limited.

# Check if one of the variables BLACK_PROCESSES_LIST or WHITE_PROCESSES_LIST is defined.
if [[ -n "$BLACK_PROCESSES_LIST" &&  -n "$WHITE_PROCESSES_LIST" ]] ; then    # If both variables are defined then error is produced.
   echo "At least one or both of the variables BLACK_PROCESSES_LIST or WHITE_PROCESSES_LIST must be empty."
   exit 1
elif [[ -n "$BLACK_PROCESSES_LIST" ]] ; then                                 # If this variable is non-empty then set NEW_PIDS_COMMAND variable to bellow command
   NEW_PIDS_COMMAND="top -b -n1 -c | grep -E '$BLACK_PROCESSES_LIST' | gawk '\$9>CPU_LIMIT {print \$1}' CPU_LIMIT=$CPU_LIMIT"
elif [[ -n "$WHITE_PROCESSES_LIST" ]] ; then                                 # If this variable is non-empty then set NEW_PIDS_COMMAND variable to bellow command
   NEW_PIDS_COMMAND="top -b -n1 -c | gawk 'NR>6' | grep -E -v '$WHITE_PROCESSES_LIST' | gawk '\$9>CPU_LIMIT {print \$1}' CPU_LIMIT=$CPU_LIMIT"
else
   NEW_PIDS_COMMAND="top -b -n1 -c | gawk 'NR>6 && \$9>CPU_LIMIT {print \$1}' CPU_LIMIT=$CPU_LIMIT"
fi

# Search and limit violating PIDs

temp1=$(echo "61")
temp2=$(echo "63")

while sleep $DAEMON_INTERVAL
do
   temp=$(cat /proc/acpi/ibm/thermal)
   temp=${temp:14:2}
   if [[ "$temp" > "$temp2" ]]; then
      NEW_PIDS=$(eval "$NEW_PIDS_COMMAND")                                                                    # Violating PIDs
      LIMITED_PIDS=$(ps -eo args | gawk '$1=="cpulimit" {print $3}')                                          # Already limited PIDs
      QUEUE_PIDS=$(comm -23 <(echo "$NEW_PIDS" | sort -u) <(echo "$LIMITED_PIDS" | sort -u) | grep -v '^$')   # PIDs in queue

      for i in $QUEUE_PIDS
      do
          cpulimit -p $i -l $CPU_LIMIT -z &   # Limit new violating processes
      done
   elif [[ "$temp" < "$temp1" ]]; then
      LIMITED_PIDS=$(ps -eo args | gawk '$1=="cpulimit" {print $3}')
      if [[ -n "$LIMITED_PIDS" ]]; then
         echo 'Killing all cpulimits.'
         killall cpulimit
      fi
   fi
done
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#14

帖子 vickycq » 2016-03-29 23:29

这个自动降频脚本也有一定效果:https://github.com/Sepero/temp-throttle
不过貌似有个问题,退出时不会自动恢复 scaling_max_freq
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
jobinson99
帖子: 1169
注册时间: 2007-04-28 15:14
系统: NixOS+虚拟机各种系统
联系:

Re: sensors显示出来的温度准确吗?如果有误差,误差值有多大?

#15

帖子 jobinson99 » 2016-06-28 7:57

vickycq 写了:
kashu 写了: CPU那有一块很长的黄铜散热器,一直延伸到散热风扇那,应该算是热容量大吧?
那个是热管,用于导热
有些超薄便携本的散热器设计十分奇葩,根本没有热管,完全用金属片导热。在华硕某些本子上见过这种设计。
kashu 写了: 主动散热垫,应该是「向下吸风」的比「向上吹风」的要更好吧?
一般主动散热垫风向有三种设计:向下吸风,向上吹风,多向循环
一般笔记本从D面散热孔吸入空气,再从散热器吹出。
如果散热垫向下吸风,会不会在D面和散热垫上表面之间形成一个低压区,影响笔记本吸入空气呢?
:What
那可不是普通的金属片,而是 热管阵列,好像叫均温片,就是多个热管并联,所以如果容积大于热管,效果会好于热管的
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
回复