24.06.2009 02:16
chemikadze — Боремся с жарой
Наступило лето, а вместе с ним пришла жара, и я стал замечать, что у многих начались проблемы с перегревом. Оно и не мудрено - даже нам, двуногим, достаточно легко спечься на такой жаре при рабочей температурой 36.6?C, что уже говорить о современных процессорах, а тем более о процессорах ноутбуков. Далее мы разберемся, как работает энергосбережение процессора, и как уберечься от этой летней напасти.Как известно, процессором поддерживаются 4 режима энергосбережения: performance - максимальная производительность, ondemand и conservative - динамические режимы и powersave - энергосбережение/наименьшая производительность. Немного отдельно стоит userspace режим, при котором частота задается жестко. Разница же мажду ondemand и conservative состоит в том, что в первом случае при появлении нагрузки процессор сразу набирает полную частоту, а во втором - "раскачивается" некоторое время, что дает компромисс: с одной стороны не дает процессору тратить энергию/нагреваться зря, но в случае долгих пиковых нагрузок выдавать полную мощность.
Для управления режимами энергосбережения используются консольные утилиты cpufreq-set и cpufreq-info, входящие в пакет cpufrequtils (по крайней мере так обстоит дело в gentoo, но думаю не составит труда найти нужный пакет для вашего любимого дистрибутива). Как ясно из названия, они позволяют соответственно устанавливать частоту/режим работы процессора и получать информацию о текущем режиме.
Вот опции коммандной строки для cpufreq-set:
-c --cpu <CPU>Указывает номер процессора, к которому нужно применить частотную политику. На многоядерных системах частота ядер может не совпадать, все зависит от опций ядра и железа, поэтому может пригодиться.
-d --min <FREQ>Нижняя граница частоты процессора для текущей политики энергосбережения.
-u --max <FREQ>Соответственно верхняя граница частоты.
-g --governor <GOV>Собственно, задает режим энергосбережения, доступны:
performance
ondemand
conservative
powersave
userspace - устанавливается автоматически при использовании флага -f
-f --freq <FREQ>Жестко задает частоту, совместим только с флагом -c. Как уже говорилось, автоматически устанавливает политику userspace.
-hСправка, здесь все традиционно.
Замечу, что для использования cpufreq-set нужны прова администратора (root).
Пример:
1 |
|
Касательно cpufreq-info никаких особых опций знать не нужно, по умолчанию выводится вся нужная информация по каждому процессору (пределы частот, шаги частот, доступные политики управления и состояние процессора). Посмотреть ключи для вывода только нужной информации можно в руководстве man.
1 |
chemikadze@hell ~ $ cpufreq-info
|
Для постоянного мониторинга частоты используется cpufreqd (не входит в cpufrequtils), который имеет достаточно гибкие возможности настройки зависимоти частоты от состояния компьютера, включая состояние AC-адаптера, а так же "белые" списки программ, которые не дают демону перевести процессор в режим энергосбережения, когда вы, например смотрите свое любимое аниме в HD качестве на слабой машине через mplayer, занесенный в "белый" список. Но есть у cpufreqd один минус - он конфликтует с GUI программами типа kpowersave и powerdevil. С другой стороны, эти программы не обладают достаточным функционалом для отслеживания температуры процессора, и поэтому я обратился за помощью к старым добрым cron и bash.
Ниже - пример с моей машины, надеюсь он окажется полезным для кого-нибудь:
chemikadze 24.06.2009 02:34 #
+ 0 -
по совету одного человека добавил к скрипту еще комментарии
Пост не закончен.
Описаны не все действия.
Зачем скрипт лежит в /root/ ?
Описаны не все действия.
Зачем скрипт лежит в /root/ ?
lol@exmedesk: /rootlol@exmedesk:/root$ ./cpufreq-temp.sh
cat: /proc/acpi/thermal_zone/TZ01/temperature: No such file or directory
<: 23: -gt: unexpected operator
cat: /proc/acpi/ac_adapter/AC/state: No such file or directory
cat: /proc/acpi/thermal_zone/TZ01/temperature: No such file or directory
<: 23: -gt: unexpected operator
cat: /proc/acpi/ac_adapter/AC/state: No such file or directory
lol@exmedesk:/root$ cat /proc/acpi/thermal_zone/TZ00/temperature
cat: /proc/acpi/thermal_zone/TZ00/temperature: No such file or directory
lol@exmedesk:/root$ cat /proc/acpi/thermal_zone/TZ01/temperature
cat: /proc/acpi/thermal_zone/TZ01/temperature: No such file or directory
lol@exmedesk:/root$
cat: /proc/acpi/thermal_zone/TZ00/temperature: No such file or directory
lol@exmedesk:/root$ cat /proc/acpi/thermal_zone/TZ01/temperature
cat: /proc/acpi/thermal_zone/TZ01/temperature: No such file or directory
lol@exmedesk:/root$
А вообще, если по теме.
Нужно добавить про информацию о температуре жесткого диска
И информацию о температуре видеокарты
Ха ха =) с видяхой у меня какая то ерунда =) вечером проверю как там куллер.
Нужно добавить про информацию о температуре жесткого диска
lol@exmedesk:/root$ sudo hddtemp /dev/sda
/dev/sda: WDC WD5000AAKS-65A7B0: 34°C
lol@exmedesk:/root$
И информацию о температуре видеокарты
lol@exmedesk:/root$ nvclock -T
nVidia Geforce 9800GT
=> GPU temperature: -389C
lol@exmedesk:/root$
Ха ха =) с видяхой у меня какая то ерунда =) вечером проверю как там куллер.
По-моему тов. exelens получит нобелевскую премию за получение такой температуры + в нагрузку обязанность переписать всю термодинамику и МКТ заново. Педивикия какбе намекает.
По опыту известно, что в девяти случаев из десяти помогает простая замена термопасты(и продувка системы охлаждения в случае ноутбуков), ну или открытая крышка системника:)
К тому же стоило бы указать, что пока существует нехилое количество железа которое вообще "не умеет" изменять частоту проца(ну исобссно сами процы у которых нет такой фичи), а то будут люди мучаться почем зря.
К тому же стоило бы указать, что пока существует нехилое количество железа которое вообще "не умеет" изменять частоту проца(ну исобссно сами процы у которых нет такой фичи), а то будут люди мучаться почем зря.
гентоюзверам и арчерам, думаю, пригодится. охлаждение охлаждением но меня 70-градусный ноут во время эмержей как-то совсем не возбуждает, да и стремно немного.
гентушник - эт такой человек, который получает 5-10% прироста производительности с помощью 100%-ной загрузки процессора (с)
гентушник - эт такой человек, который получает 5-10% прироста производительности с помощью 100%-ной загрузки процессора (с)
просто указать явно, что если в выводе cat /proc/cpuinfo в строчке flags нет таких-то и таких-то флагов - то заморачиваться бессмысленно.
Спасибо за статью, вот только четверокедовцы пользуют PowerDevil в его плазмоидной ипостаси. Конечно, тов. NucleoFag, теперь скорее всего, будет ручками в SystemSettings лазить, или 'plasmoidviewer battery' запускать. В любом случае - если есть GUI, то зачем новичков заморачивать такими вещами? :)
Хм.. Да, вы правы. Прошу прощения за невнимательность. PD управляет политикой электропитания, но только на основе уровня заряда батареи. На температуру не смотрит... Вот если бы такую фичу добавить в один из плазмоид-мониторов, то было бы просто прелестно ))
ВНЕЗАПНО появилось чем заняться на летней практике. Попробую разобраться в стандартном battery status.
Советую разбираться не в плазмоиде battery, а в том, каким dataengine он пользуется. И пользовать далее либо его, либо напрямую к Solid обращаться.
А насчет того, какой плазмоид стоит колупать - лучше посмотрите системные мониторы из kdeplasma-playground. Есть там монитор температуры, который не может быть выведен как отдельный плазмоид, или как часть более сложного системного монитора.
В любом случае - удачи вам :)
А насчет того, какой плазмоид стоит колупать - лучше посмотрите системные мониторы из kdeplasma-playground. Есть там монитор температуры, который не может быть выведен как отдельный плазмоид, или как часть более сложного системного монитора.
В любом случае - удачи вам :)
который не может быть выведен как отдельный плазмоид
странно, а почему он у меня выведен отдельно? О_о
опечатка :P
Конечно же я имел ввиду что он или может быть выделен как отдельный плазмоид, или как часть более сложного.
Конечно же я имел ввиду что он или может быть выделен как отдельный плазмоид, или как часть более сложного.
понятно. но я даже не знаю, смогу ли приступить - мне книгу Шлее по Qt для начала надо доизучить до конца))
На самом деле достаточно понять принцип сигналов и слотов, а там уже assistant тебе в помощь. Просто читай код, он обычно понятен на Qt/KDE.