51

I have a dual Opteron server running Linux with libvirt to host several VMs. The VMs work fine and the server processes OK, but I notice one CPU always runs about 69C (throttles at 70C) and the other runs about 15C.

This doesn't seem normal to me? Shouldn't they both be a little closer in temperature?

I'm not sure how to dianose any further. Maybe there isn't enough thermal paste on one of the CPUs?

Edit: The motherboard is ASUS KGPE-D16 and cooled by dual Noctua NH-U9DO fans.

Note that I think the temperatures might be degress above ambient, rather than absolute values? When the server is idling, the CPU temperatures drop to 2C and 13C. I am using the lmsensors configuration from here

  • 1
    What is the server make/model? – ewwhite Nov 27 '14 at 12:31
  • 2
    How is the distribution of CPU load? mpstat -P ALL 1 on linux will help – Christopher Perrin Nov 27 '14 at 12:32
  • 3
    sounds like broken temperature sensor – matcheek Nov 27 '14 at 12:32
  • 14
    15C is very likely a broken censor.... – Reaces Nov 27 '14 at 12:37
  • Seems like either a broken or badly calibrated sensor, if you can reboot the server, take a look at the BIOS which should display correct values. – user186340 Nov 27 '14 at 18:15
106

The problem ended up being a poorly fit heatsink. Maybe poorly fit isn't the right description. Turns out, you have to put thermal paste on the heatsink, not the plastic cover that goes over the heatsink.

enter image description here

After removing the plastic cover, the CPU is nice and cool, thanks everyone!

  • 51
    +1 just because it's funny – HBruijn Nov 28 '14 at 0:25
  • 9
    You mean someone left the plastic cover in place and then put paste on it and then put the heatsink on that? Epic. – TomTom Nov 28 '14 at 10:30
  • 4
    Baaaaaahaaahaaahahahaa!! – Craig Nov 28 '14 at 22:09
  • 8
    I love how you can see the terms and conditions, limited warranty and returns policy in the background. :) – Lightness Races in Orbit Nov 29 '14 at 19:47
  • 6
    If it makes you feel any less stupid, (and it won't), I did a similar thing with my new office coffee-maker. The coffee was too cold to drink and I was packing it back up for return to the shop before a disk of protective cardboard dropped off the heating element:) – Martin James Nov 29 '14 at 20:16
25

In my experience, it is normal for paired components in a case to run at different temperatures, because airflow is not the same everywhere. Here's a graph of HDD temperature from my colo box. The drives are mirrored, so the workloads on them are near to identical.

munin graph of HDD temps over past year

As you can see, they track each other, but they're not the same; they're also, on average, only 6C apart. Whether your sensors report absolute temperature or overtemperature, a difference of 55C under load seems very badly wrong. If you have confidence the data are right, then given the quiescent difference drops to 10C, which is the sort of difference I see due to airflow, I'd suspect a poorly-fitted heatsink.

  • 1
    Using mpstat (from Christopher Perrin, thanks!) I confirmed that the load is fairly evenly distributed. Things are idling right now at +3C and +20C. I'm going to try fiddling with the heatsink to see if it is loose. Do you think it could be a thermal paste issue? – samoz Nov 27 '14 at 13:02
  • That is very possible (and more so after you start wiggling it). – MadHatter Nov 27 '14 at 13:16
8

It is not. Unless you have some serious issues with the airflow. Or one of the coolers is bad. Temperature WILL vary - but not that much (70 vs. 15 degree celsius).

Given how low 15 degree is I would assume (a) your sensor is off (you really store the server in a that cool room?).

I would also assume one of the CPU does simply no work at all, for whatever reason.

Small differences are normal. Some little larger ones may be (airflow coming to my mind). but here we talk about one being COLD.

2

This could be either cooling or uneven loading (given the temp difference your situation is probably uneven loading). You should use something like prime95 to load all the cores evenly and see if the temps still vary. If they don't then you need to balance the VMs, check that your apps are multithreaded and busy. How to do that depends on your software and individual workload so is beyond the scope of the question really. Bear in mind there is no real advantage to doing this if you don't have enough load to top out a single cpu/core, in fact your VM may deliberately avoid using a second cpu so that it can go into power saving modes on multi-cpu systems.

If you have narrowed it down to cooling. A small difference of upto 10C could be too little (or too much!) thermal paste. A bigger difference indicates a significant problem or difference between cpu coolers. It could be that one has blocked airflow, a heatsink has been knocked loose, etc.

0

I would have to concur with, defective temp. sensor, as 15C is only 59F!!! Unless the computer's in an extremely frigid datacenter, I would imagine the ambient air temperature would be higher than 59F! You try to assign the VM's to the low temperature core and see if there is any change; if not, I would highly suspect the sensor as being faulty.

You may also want to look at the output of dmesg (boot messages) and see if there is anything out of the ordinary there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.