LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

У тебя процессор на 100% работает постоянно, потому и греется.

Быстрое, но не самое эффективное решение - поставить governor=ondemand; это можно сделать из конфига ядра, там есть установка дефолтного governor. Недостаток в том, что ядро будет раскочегариваться до полной мощности только когда некоторое время на нем будет пиковая нагрузка; соотв. потери производительности будут заметны. Более интеллектуальным решением является cpufreqd и управлять частотой из-под него. Я сделал так, что компьютер всегда на performance (настройка в ядре), но когда температура подскакивает до 90 - менять на powersave пока не остынет.

Читать здесь:
http://habrahabr.ru/post/80914/
http://en.gentoo-wiki.com/wiki/CPU_Frequency_Scaling
http://wiki.gentoo.org/wiki/Power_management/Processor

Все, что ниже, тюнить под себя, так как каждый нотик имеет свои особенности. В частности, посмотри чем тебе лучше мониторить: acpi_temperature или sensors, а также пороговые температуры.

Мониторил работу своей схемы так:

while true; do
        clear
        date
        sensors
        echo -n "Direct temperature: "
        cat /sys/devices/virtual/thermal/thermal_zone0/temp
        echo
        for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do
                echo $c
                cat $c/cpufreq/cpuinfo_cur_freq
                cat $c/cpufreq/scaling_governor
                echo
        done
        sleep .3
done

С помощью этого скриптика выявил баг в cpufreqd: иногда почему-то governor устанавливается не на все ядра. Так что на высоких нагрузках иногда приходится вручную передергивать:

$ for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do echo powersave >$c/cpufreq/scaling_governor; done

Mой конфиг cpufreqd:

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=0.5
verbosity=4
[/General]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=Performance
minfreq=100%
maxfreq=100%
policy=performance
[/Profile]

[Profile]
name=Cool
minfreq=20%
maxfreq=20%
policy=powersave
[/Profile]

[Profile]
name=Battery
minfreq=60%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=Save
minfreq=30%
maxfreq=30%
policy=powersave
[/Profile]

#### Rules ####

##### AC ######

[Rule]
name=AC_Normal
ac=on                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75

profile=Performance
[/Rule]

[Rule]
name=AC_Hot
ac=on                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-100

profile=Cool
[/Rule]

### Battery ###

[Rule]
name=Battery_Normal_High
ac=off                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75
battery_interval=21-100

profile=Battery
[/Rule]

[Rule]
name=Battery_Hot_High
ac=off                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-500
battery_interval=21-100

profile=Cool
[/Rule]

[Rule]
name=Battery_Low
ac=off                    # (on/off)
acpi_temperature=0-500
#sensor=temp1:0-500
battery_interval=0-20

profile=Save
[/Rule]

Исправление Kroz, :

У тебя процессор на 100% работает постоянно, потому и греется.

Быстрое, но не самое эффективное решение - поставить governor=ondemand; это можно сделать из конфига ядра, там есть установка дефолтного governor. Недостаток в том, что ядро будет раскочегариваться до полной мощности только когда некоторое время на нем будет пиковая нагрузка; соотв. потери производительности будут заметны. Более интеллектуальным решением является cpufreqd и управлять частотой из-под него. Я сделал так, что компьютер всегда на performance (настройка в ядре), но когда температура подскакивает до 90 - менять на powersave пока не остынет.

Читать здесь: http://habrahabr.ru/post/80914/
http://en.gentoo-wiki.com/wiki/CPU_Frequency_Scaling
http://wiki.gentoo.org/wiki/Power_management/Processor

Все, что ниже, тюнить под себя, так как каждый нотик имеет свои особенности. В частности, посмотри чем тебе лучше мониторить: acpi_temperature или sensors, а также пороговые температуры.

Мониторил работу своей схемы так:

while true; do
        clear
        date
        sensors
        echo -n "Direct temperature: "
        cat /sys/devices/virtual/thermal/thermal_zone0/temp
        echo
        for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do
                echo $c
                cat $c/cpufreq/cpuinfo_cur_freq
                cat $c/cpufreq/scaling_governor
                echo
        done
        sleep .3
done

С помощью этого скриптика выявил баг в cpufreqd: иногда почему-то governor устанавливается не на все ядра. Так что на высоких нагрузках иногда приходится вручную передергивать:

$ for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do echo powersave >$c/cpufreq/scaling_governor; done

Mой конфиг cpufreqd:

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=0.5
verbosity=4
[/General]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=Performance
minfreq=100%
maxfreq=100%
policy=performance
[/Profile]

[Profile]
name=Cool
minfreq=20%
maxfreq=20%
policy=powersave
[/Profile]

[Profile]
name=Battery
minfreq=60%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=Save
minfreq=30%
maxfreq=30%
policy=powersave
[/Profile]

#### Rules ####

##### AC ######

[Rule]
name=AC_Normal
ac=on                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75

profile=Performance
[/Rule]

[Rule]
name=AC_Hot
ac=on                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-100

profile=Cool
[/Rule]

### Battery ###

[Rule]
name=Battery_Normal_High
ac=off                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75
battery_interval=21-100

profile=Battery
[/Rule]

[Rule]
name=Battery_Hot_High
ac=off                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-500
battery_interval=21-100

profile=Cool
[/Rule]

[Rule]
name=Battery_Low
ac=off                    # (on/off)
acpi_temperature=0-500
#sensor=temp1:0-500
battery_interval=0-20

profile=Save
[/Rule]

Исправление Kroz, :

У тебя процессор на 100% работает постоянно, потому и греется.

Быстрое, но не самое эффективное решение - поставить governor=ondemand; это можно сделать из конфига ядра, там есть установка дефолтного governor. Недостаток в том, что ядро будет раскочегариваться до полной мощности только когда некоторое время на нем будет пиковая нагрузка; соотв. потери производительности будут заметны. Более интеллектуальным решением является cpufreqd и управлять частотой из-под него. Я сделал так, что компьютер всегда на performance (настройка в ядре), но когда температура подскакивает до 90 - менять на powersave пока не остынет.

Читать здесь: http://habrahabr.ru/post/80914/ http://en.gentoo-wiki.com/wiki/CPU_Frequency_Scaling http://wiki.gentoo.org/wiki/Power_management/Processor

Все, что ниже, тюнить под себя, так как каждый нотик имеет свои особенности. В частности, посмотри чем тебе лучше мониторить: acpi_temperature или sensors, а также пороговые температуры.

Мониторил работу своей схемы так:

while true; do
        clear
        date
        sensors
        echo -n "Direct temperature: "
        cat /sys/devices/virtual/thermal/thermal_zone0/temp
        echo
        for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do
                echo $c
                cat $c/cpufreq/cpuinfo_cur_freq
                cat $c/cpufreq/scaling_governor
                echo
        done
        sleep .3
done

С помощью этого скриптика выявил баг в cpufreqd: иногда почему-то governor устанавливается не на все ядра. Так что на высоких нагрузках иногда приходится вручную передергивать:

$ for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do echo powersave >$c/cpufreq/scaling_governor; done

Mой конфиг cpufreqd:

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=0.5
verbosity=4
[/General]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=Performance
minfreq=100%
maxfreq=100%
policy=performance
[/Profile]

[Profile]
name=Cool
minfreq=20%
maxfreq=20%
policy=powersave
[/Profile]

[Profile]
name=Battery
minfreq=60%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=Save
minfreq=30%
maxfreq=30%
policy=powersave
[/Profile]

#### Rules ####

##### AC ######

[Rule]
name=AC_Normal
ac=on                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75

profile=Performance
[/Rule]

[Rule]
name=AC_Hot
ac=on                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-100

profile=Cool
[/Rule]

### Battery ###

[Rule]
name=Battery_Normal_High
ac=off                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75
battery_interval=21-100

profile=Battery
[/Rule]

[Rule]
name=Battery_Hot_High
ac=off                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-500
battery_interval=21-100

profile=Cool
[/Rule]

[Rule]
name=Battery_Low
ac=off                    # (on/off)
acpi_temperature=0-500
#sensor=temp1:0-500
battery_interval=0-20

profile=Save
[/Rule]

Исходная версия Kroz, :

У тебя процессор на 100% работает постоянно, потому и греется.

Быстрое, но не самое эффективное решение - поставить governor=ondemand; это можно сделать из конфига ядра, там есть установка дефолтного governor. Недостаток в том, что ядро будет раскочегариваться до полной мощности только когда некоторое время на нем будет пиковая нагрузка; соотв. потери производительности будут заметны. Более интеллектуальным решением является cpufreqd и управлять частотой из-под него. Я сделал так, что компьютер всегда на performance (настройка в ядре), но когда температура подскакивает до 90 - менять на powersave пока не остынет.

Читать здесь: http://habrahabr.ru/post/80914/ http://en.gentoo-wiki.com/wiki/CPU_Frequency_Scaling http://wiki.gentoo.org/wiki/Power_management/Processor

Все, что ниже, тюнить под себя, так как каждый нотик имеет свои особенности. В частности, посмотри чем тебе лучше мониторить: acpi_temperature или sensors

Мониторил работу своей схемы так:

while true; do
        clear
        date
        sensors
        echo -n "Direct temperature: "
        cat /sys/devices/virtual/thermal/thermal_zone0/temp
        echo
        for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do
                echo $c
                cat $c/cpufreq/cpuinfo_cur_freq
                cat $c/cpufreq/scaling_governor
                echo
        done
        sleep .3
done

С помощью этого скриптика выявил баг в cpufreqd: иногда почему-то governor устанавливается не на все ядра. Так что на высоких нагрузках иногда приходится вручную передергивать:

$ for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do echo powersave >$c/cpufreq/scaling_governor; done

Mой конфиг cpufreqd:

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=0.5
verbosity=4
[/General]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=Performance
minfreq=100%
maxfreq=100%
policy=performance
[/Profile]

[Profile]
name=Cool
minfreq=20%
maxfreq=20%
policy=powersave
[/Profile]

[Profile]
name=Battery
minfreq=60%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=Save
minfreq=30%
maxfreq=30%
policy=powersave
[/Profile]

#### Rules ####

##### AC ######

[Rule]
name=AC_Normal
ac=on                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75

profile=Performance
[/Rule]

[Rule]
name=AC_Hot
ac=on                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-100

profile=Cool
[/Rule]

### Battery ###

[Rule]
name=Battery_Normal_High
ac=off                    # (on/off)
acpi_temperature=0-75
#sensor=temp1:0-75
battery_interval=21-100

profile=Battery
[/Rule]

[Rule]
name=Battery_Hot_High
ac=off                    # (on/off)
acpi_temperature=90-500
#sensor=temp1:90-500
battery_interval=21-100

profile=Cool
[/Rule]

[Rule]
name=Battery_Low
ac=off                    # (on/off)
acpi_temperature=0-500
#sensor=temp1:0-500
battery_interval=0-20

profile=Save
[/Rule]