0x01 前言

在过去的一个月我发现我的服务器(我的DELL R720服务器)有个非常奇怪的现象:通过监测发现我的两个CPU的温度数值相差非常大。在负载60%以上时,两个CPU的温度相差10摄氏度。

而我上一台服务器(我的HP ProLiant DL380 G6)则没有这种情况,两颗CPU的数值相差值不会超过2摄氏度。

0x02 现象

以下是我的zabbix所监测到的数据:

因为最近一个月的天气温度比较低,所以从图中会发现服务器的进气温度为22度左右,出气温度为36度左右。而CPU1和CPU2的平均温度分别为:56.4摄氏度和48.8摄氏度,两者相差将近10摄氏度。

以下是6个散热风扇的数值:

从上图可以看出,靠近CPU2一侧的风扇转速较其他散热风扇的转速要高。

0x03 猜想 1

我买服务器的服务商在发货前将CPU更换为我指定的型号:xeon E5-2650,在此之前我有过一个因为CPU导热硅脂质量差导致CPU温度飙高的经历。我在想,这一次会不会也是因为服务商所涂抹的散热硅脂质量不佳而导致问题呢?

0x04 硅脂

为了消除疑虑,我特意拆开散热器并重新涂抹散热硅脂。我使用上次更换CPU(从XEON L5630升级到XEON X5675并加装APC UPS)剩下的酷冷至尊的散热硅脂:

拆开服务器盖子后可以看到服务器内部,上方的CPU为CPU2,下方为CPU1:

拆开散热器后,我发现散热硅脂的质量确实不理想,硅脂在完全冷却的情况下呈现为粘稠的液体,而不是胶状:

现在需要一点时间将原来的硅脂抹擦干净:

再擦拭散热器的时候我发现dell这个散热器的质量也不太理想,摸上去比DL380 G6的散热器的散热速度要差,同时热量很容易积聚,不到2分钟,手指触摸的位置已经开始变热。

可能是因为dell认为95W热量不足以对系统造成影响,所以选用了这种材质的散热器。

最后在CPU上用硅脂点5个点,再将散热器重新装上去:

0x05 观测

重新涂抹硅脂后,再次观测zabbix获取到的数据。在过去的3个半钟的数据如下:

温度差异依然存在,在服务器刚启动的时候,也就是负载最大时的CPU温度差异最大,最大值的差值为13摄氏度,平均值的差值为7摄氏度。

0x06 猜想 2

看来散热硅脂并不是导致这个问题的主要原因,在研判后我发现一个问题。服务器的散热风扇的转速也存在较大的差异。位于CPU2一侧的两个散热风扇转速较高,我想这也是一个很重要的因素。

下图是我服务器的平面图:

CPU2位于下方,CPU2后侧为整列卡和拓展卡和网络拓展卡(4个千兆电口)。

CPU1位于上方,CPU1后侧为电源,电源自身带有主动散热风扇。

那么问题来了,会不会是因为CPU后方模块的不同导致了风扇的送风量不同?

还有一个问题是:我的服务器并不是水平放置的,和上图一样是竖直放置的。因为放置方式的关系,所有热量都会在顶部,也就是CPU1一侧聚集,导致上方的温度上升。

0x07 结语

折腾几个小时,问题改善程度不大,但服务器的负载可以维持在50以下,所以CPU温度一直在可接受的范围。下图是温度阀值:

在上周我进行了一次CPU压力测试,通过CPU压力测试工具将CPU负载维持在100%并持续40分钟。但热风扇的确起了作用,CPU1的温度维持在73度以下,CPU2则低得多,维持在68度左右。