CPU overheating. What can I do?

I've experienced a few emergency shutdowns due to overheating. (Always while playing Minecraft) I checked what sensors would say me and I got this reply:

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +52.0°C  (high = +80.0°C, crit = +85.0°C)
Core 0:         +52.0°C  (high = +80.0°C, crit = +85.0°C)
Core 1:         +48.0°C  (high = +80.0°C, crit = +85.0°C)

This means I have to keep my CPU temp below 85°C. How can I achieve this? I've tried to use LXDE for gaming, which reduced the nuber of overheatings, but they still are there.

I've read through the /var/log/kern.log.1 and found these lines at the crash time:

Nov  3 12:12:27 dracarys kernel: [ 1466.805429] CPU1: Core temperature above threshold, cpu clock throttled (total events = 1)
Nov  3 12:12:27 dracarys kernel: [ 1466.805432] CPU0: Package temperature above threshold, cpu clock throttled (total events = 1)
Nov  3 12:12:27 dracarys kernel: [ 1466.805438] CPU1: Package temperature above threshold, cpu clock throttled (total events = 1)
Nov  3 12:12:27 dracarys kernel: [ 1466.806434] CPU1: Core temperature/speed normal
Nov  3 12:12:27 dracarys kernel: [ 1466.806436] CPU0: Package temperature/speed normal
Nov  3 12:12:27 dracarys kernel: [ 1466.806440] CPU1: Package temperature/speed normal
Nov  3 12:13:00 dracarys kernel: [ 1499.816082] mce: [Hardware Error]: Machine check events logged
Nov  3 12:13:44 dracarys kernel: imklog 5.8.11, log source = /proc/kmsg started.
Nov  3 12:13:44 dracarys kernel: [    0.000000] Initializing cgroup subsys cpuset
Nov  3 12:13:44 dracarys kernel: [    0.000000] Initializing cgroup subsys cpu
Nov  3 12:13:44 dracarys kernel: [    0.000000] Linux version 3.8.0-32-generic (buildd@lamiak) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #47-Ubuntu SMP Tue Oct 1 22:35:23 UTC 2013 (Ubuntu 3.8.0-32.47-generic 3.8.13.10)
Nov  3 12:13:44 dracarys kernel: [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-32-generic root=UUID=217614be-d869-4303-8ca9-92fb8680dde6 ro quiet splash vt.handoff=7

it says the temperature could be brought down again, but the computer yet switched off.


Solution 1:

I created a program just for this problem. Limit your CPU based on a desired temperature. It runs like this:

sudo ./temp_throttle.sh 80

That command will make your CPU cores slow down when they reach 80 degrees Celsius. You can find temp_throttle here.

Solution 2:

Each core has their own values, for some ~90°C is normal operating temperature. There are several reasons why your CPU could overheat. Kernel issues, stopped fans, bad fan/temperature management, dusty airflows, etc, etc.

You literally have to tackle every reason (some of them cannot) and see what works.