Содержание
- попозже доработаю
— Malamut 2011/04/06 23:25
laptop_mode
Если у вас стоит убунту на ноутбуке, у вас уже должен быть установлен пакет laptop_mode
, оптимизирующий работу компьютера в зависимости от источника питания. Значение 0, посылаемое в /proc/sys/vm/laptop_mode, отключает режим энергосбережения, 5 устанавливает самый агрессивный.
Подробнее о том, как именно laptop_mode сберегает энергию, можно прочесть хотя бы в официальном FAQ.
echo 0 > /proc/sys/vm/laptop_mode #выключает laptop_mode echo 5 > /proc/sys/vm/laptop_mode #активирует laptop_mode
Энергосбережение SATA
Можно включать режим энергосбережение для SATA-устройств:
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy echo min_power > /sys/class/scsi_host/host1/link_power_management_policy echo min_power > /sys/class/scsi_host/host2/link_power_management_policy echo min_power > /sys/class/scsi_host/host3/link_power_management_policy echo min_power > /sys/class/scsi_host/host4/link_power_management_policy echo min_power > /sys/class/scsi_host/host5/link_power_management_policy
У вас в /sys/class/scsi_host/ может быть другое количество устройств, учтите это. Для включения максимального быстродействия нужно выполнить команды с max_performance вместо min_power.
Энергосбережение процессора
По умолчанию в Ubuntu есть пять профилей работы процессора:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative ondemand userspace powersave performance
- conservative
- Медленно повышает частоту процессора в зависимости от нагрузки на систему и резко сбрасывает частоту к минимальной при простое.
- ondemand
- Быстро повышает частоту процессора при возрастании нагрузки и медленно сбрасывает частоту к минимуму при простое.
- userspace
- Позволяет указывать частоту вручную.
- powersave
- Соответствует минимальной допустимой частоте CPU.
- performance
- Очевидно, соответствуют максимальной частоте CPU.
В итоге для управления потреблением энергии процессором:
#для производительности; выполнять сие для каждого ядра echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
#для энергосбережения echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo powersave > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
Многие независимые пользователи крайне не советуют использовать режим performance, поэтому даже для работы от сети, когда экономить на ваттах нет смысла, стоит использовать режим ondemand.
Кроме этого, параметр 'sched_mc_power_savings' из /sys/devices/system/cpu/ позволяет использовать энергосберегающий режим работы процессора в случае, если у того более одного ядра, благодаря особому распределению нагрузки между ядрами:
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings #включаем энергосбережение echo 0 > /sys/devices/system/cpu/sched_mc_power_savings #выкл
Энергосбережение аудиокарты
Встроенные аудио-чипы от Intel (которые принадлежат к т. н. High Definition Audio — HDA) также имеют возможность экономии ватт, если звуковой чип не используется:
echo 0 > /sys/module/snd_hda_intel/parameters/power_save #выключаем энергосбережение echo 10 > /sys/module/snd_hda_intel/parameters/power_save #вкл
Запрет опрашивания CD привода
Для того, что выиграть еще чуть-чуть времени работы батареи, можно запретить системе время от времени «опрашивать» cd/dvd-привод на предмет наличия там диска:
hal-disable-polling --device /dev/cdrom #запрещаем hal-disable-polling --enable-polling --device /dev/cdrom #делаем как было
Отключение веб-камеры
Можно полностью выключить веб-камеру вместе с драйвером:
modprobe -r uvcvideo #выключаем modprobe uvcvideo #включаем обратно
Естественно, пропустите этот шаг, если вам придется использовать скайп или еще для чего-то понадобится камера.
Эффективная работа памяти
С точки зрения работы с памятью можно оптимизировать процесс записи изменённых данных на диски.
Dirty ratio — максимальный размер памяти (в процентах), для хранения «грязных» данных. При превышении этого объёма данных процесс, их сгенерировавший, будет принужден записать их. Очевидно, чем выше значение, тем реже производится запись и тем меньше активность жесткого диска и системы:
echo 10 > /proc/sys/vm/dirty_ratio # при работе от сети echo 90 > /proc/sys/vm/dirty_ratio # при работе от батареи
Dirty background ratio — минимальное число памяти (в процентах), где позволено хранить «гразные» данные вместо записи на диск. Этот параметр должен быть намного меньше, чем dirty_ratio, чтобы позволить записывать куски грязных данных за один проход.
echo 5 > /proc/sys/vm/dirty_background_ratio #в нормальном режиме echo 1 > /proc/sys/vm/dirty_background_ratio #в режиме энергосбережения
Dirty Writeback sentisecs — как часто ядро должно проверять есть ли «грязные» (измененные) данные для записи на диск (в сантисекундах). Чем выше значение, тем реже используется диск для записи грязных данных:
echo 6000 > /proc/sys/vm/dirty_writeback_centisecs # при работе от сети echo 60000 > /proc/sys/vm/dirty_writeback_centisecs # для энергосбережения
Энергосбережение PCI Express
Включение режима энергосбережения PCI Express также позволяет экономить немного энергии батареи:
echo powersave > /sys/module/pcie_aspm/parameters/policy # Включаем энергосбережение echo default > /sys/module/pcie_aspm/parameters/policy # Выключаем
Отключение дискретной видеокарты
Во многих ноутбуках имеется возможность переключаться между встроенным графическим чипом, маломощным и малотребовательным к электроэнергии, и сравнительно сильной и энергоемкой картой. Многим пользователям производительная графическая карта нужна редко, поэтому имеет смысл отключить ее по умолчанию с возможностью быстрого и безболезненного включения.
В версиях ядра, начиная с 2.6.34, присутствует механизм vga_switcheroo, позволяющий переключаться между видеокартами. То есть в Ubuntu 10.10 он есть по умолчанию. Пользоваться им достаточно просто.
Вначале выполняем:
lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) 01:00.0 VGA compatible controller: ATI Technologies Inc M92 LP [Mobility Radeon HD 4300 Series] (rev ff)
Зная, какой GPU как обозначается, можно посмотреть, какой из них в каком состоянии:
cat /sys/kernel/debug/vgaswitcheroo/switch 0: :Pwr:0000:01:00.0 1:+:Pwr:0000:00:02.0
Плюсик стоит на против видеочипа, который используется в данный момент, Pwr означает, что видеокарта включена и потребляет энергию.
Команда
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
отключает неиспользуемую GPU сразу же. Поэтому мы обратимся к файлу /etc/rc.local, добавив в него вышеуказанную команду (перед строчкой exit 0). Так, при загрузке систему дискретная видеокарта уже будет отключена и не нужно будет беспокоиться ни о чем:
0: :Off:0000:01:00.0 1:+:Pwr:0000:00:02.0
Кстати, если вы хотите переключаться между видеокартами через графический интерфейс, можете установить Ubuntu Control Center. Программа представляет собой панель управления параметрами Ubuntu, но нас она интересует исключительно из-за опции переключения между GPU (естественно, здесь это тоже происходит средствами vga_switcheroo).
Будьте аккуратны с UCC: во-первых, работает кривовато, например, иногда необходимо вначале переключиться на дискретную видеокарту, а лишь затем на встроенную, чтобы обесточить дискретную (либо вначале выполнить
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
а затем переключаться на встроенную GPU). Но работает. Во-вторых, переключение происходит сразу, то есть без спросу выполняется завершение сеанса и приходится вновь залогиниваться.
Больше о переключаемой графике можно почитать в Убунту-вики, в этом блоге и на Хабрахабре.