home |  electronics |  toolbox |  science club |  tuxtalk |  photos |  e-cards |  online-shop



Computer CPU fan cleaning

We have one computer that sits in the corner of the office and it's running most of the time. I had not opened it for the last 5 years and it was just working without any problems. However when I logged in a couple of days ago I noticed these kernel messages:
Sep 29 21:58:52 [kernel] [48996.286843] CPU1: Core temperature above threshold, cpu clock throttled (total events = 1)
Sep 29 21:58:52 [kernel] [48996.286847] CPU5: Core temperature above threshold, cpu clock throttled (total events = 1)
Sep 29 21:58:52 [kernel] [48996.286852] CPU4: Package temperature above threshold, cpu clock throttled (total events = 1)
Sep 29 21:58:52 [kernel] [48996.286856] CPU0: Package temperature above threshold, cpu clock throttled (total events = 1)
...

That's a CPU fan clogged with dust!

Here is what it looked like when I opened it (first picture before cleaning, second picture after cleaning):
cpu heatsink and fan before cleaning cpu heatsink and fan after cleaning


A solid fabric like sheet of dust between the fan and the CPU heatsink. The fan blows down onto the aluminum heatsink and the edges on top of the aluminum blades are flat. This causes dust to sit there and form a solid sheet of dust. They should have made pointed edges on these aluminum blades. I think it would have prevented the dust from forming a solid sheet that blocks all the air-flow. There would be some dust just as there was dust on the motherboard but it would never clog the aluminum heatsink completely.

I took a vacuum cleaner and a soft paint brush to clean the computer and now it's running again without overheating. I will keep this in mind the next time I buy a desktop PC. It should be possible to design heatsinks such that they can handle dust better.

Linux: Monitoring CPU temperature

The Linux software lm-sensors can monitor all kinds of sensors inside your computer but there is a simple way to show the CPU temperature:

The virtual file /sys/class/thermal/thermal_zone0/temp contains the CPU temperature of the in °C*1000.
This prints it in °C:
cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000 " C"}'

Example:
root@lenie:~# cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000 " C"}'
38 C



Back to: "No preservatives added"



© 2004-2024 Guido Socher