Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Итоги конкурса Group-IB Итоги конкурса Group-IB
Настало время подведения итогов нашего конкурса, который мы проводили совместно с компанией Group-IB, специализирующейся на расследовании инцидентов информационной безопасности....
Трюки с phpinfo Трюки с phpinfo
Совсем недавно в паблике появилась информация о новом интересном подходе к эксплуатации уязвимостей класса LFI с помощью бесполезной на первый взгляд функции phpinfo() и временных загрузочных файлов. Берем на вооружение этот полезный прием....

Пингвин дальнего плавания: методики продления жизни ноутбука

Bookmark and Share

Когда речь заходит о сохранении энергии на мобильных устройствах, компромисса быть не может. Продление жизни ноутбука на 20 минут зачастую значит гораздо больше, чем отзывчивость системы или скорость доступа к жесткому диску. В ход идут даже самые хардкорные методы сбережения драгоценных Ватт.

Диски

Начнем с одного из самых требовательных к энергии компонентов - жесткого диска. Являясь чуть ли не единственным на борту (за исключением кулеров) жизненно важным механическим устройством, он может серьезно сократить срок службы батареи любого ноутбука. И проблема тут даже не в том, что современный Linux часто «общается» с файловой системой, – просто шпиндель винчестера вращается слишком долго между уходами в сон и поэтому успевает отхватить солидный кусок батарейки. Исправить ситуацию можно с помощью небезызвестной утилиты hdparm:

# hdparm -B 1 -S 12 /dev/sda

Здесь с помощью опции «-B 1» мы включили самый «агрессивный» уровень сбережения энергии. Существует всего 254 подобных уровней: с 1 по 127 останавливают в случае необходимости шпиндель винчестера, а более высокие уровни этого не делают. Все современные ноутбучные жесткие диски поддерживают энергосбережение, но для уверенности лучше запустить команду «hdparm -i /dev/sda» и в выводе найти поле AdvancedPM. Опция «-S 12» говорит о том, что шпиндель должен останавливаться через 60 секунд бездействия жесткого диска. Всего существует 255 значений данной опции: значения с 1 до 240 просто умножаются на 5 секунд, а 0 вовсе отключает остановку шпинделя.

После проведенных манипуляций, по логике вещей, хорошо бы сделать так, чтобы количество обращений к жесткому диску сократилось до минимума. Тогда большую часть времени винчестер будет проводить во сне, сохраняя драгоценные Ватты. Первое, что необходимо сделать: включить так называемый «режим ноутбука» для подсистемы виртуальной памяти:

# echo 5 > /proc/sys/vm/laptop_mode
# echo 'vm.laptop_mode=5' >> /etc/sysctl.conf

Работая в таком режиме, ядро будет по возможности откладывать запись на диск, пока в этом не появится неотложная необходимость. Все буферы, требующие сброса себя на диск, будут терпеливо ожидать своей очереди.

Увеличить перерыв между записями на диск можно также с помощью поднятия таймаута между сбросом «грязных» буферов (части файлов, измененные программой или пользователем, но еще не записанные на диск) с 5 секунд до 15 – или даже 30:

# echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
# echo 'vm.dirty_writeback_centisecs=1500'

Помехой произведенным оптимизациям станет syslogd. Он требует обязательной синхронизации файловой системы после каждой записи в журнал (тот самый сброс «грязных» буферов на диск и очистка буфера самого жесткого диска). К счастью, такое поведение журнального демона легко отключить путем добавления знака «минус» в начало каждого пути к журналу в файле /etc/syslog.conf.

Также попробуем отключить опцию atime для файловой системы. Эта опция по умолчанию активирована в любой ФС и нужна для записи времени последнего обращения к файлу (так требует стандарт POSIX). Проблема в том, что подобная запись нуждается в дополнительном обращении к суперблоку файловой системы. Это влечет за собой не только энергозатраты, но и лишнюю нагрузку на ФС. Отключается atime указанием опции noatime во время монтирования ФС:

# mount -o remount,noatime /
# echo '/dev/раздел точка_монтирования ext3 noatime 0 1' >> /etc/fstab

К сожалению, включение опции noatime приведет к тому, что почтовые клиенты и программы нотификации о новой почте перестанут правильно работать. Поэтому, если корректное поведение подобных приложений жизненно важно, можно прибегнуть к компромиссному решению - опции relatime. После ее включения ядро будет обновлять время последнего обращения к файлу только в том случае, если предыдущее время доступа было раньше, чем текущее время изменения файла. Как вариант, для почты можно сделать отдельный раздел, скажем, /var/mail, и монтировать его со стандартными опциями.

Учти, что приведенные выше приемы не пройдут даром. Снижение времени бодрствования жесткого диска может вылиться в преждевременный выход его из строя (все помнят поучительную историю о дохнущих за полгода винчестерах ноутбуков, работающих под управлением Ubuntu?). Включение «режима ноутбука» и увеличение времени отложенной записи буферов приведет к большей вероятности потери данных в момент аварийного отключения питания (правда, страшно это только для настольных компов без UPS). Включение опции noatime повлечет за собой некорректную работу почтовых программ и некоторого процента других приложений. Отмена обязательной синхронизации в syslogd обернется потерей последних журнальных записей в момент отключения питания.

Графика

Не секрет, что самой жадной до энергии частью ноутбука является лампа, подсвечивающая LCD-экран с обратной стороны. Беда в том, что ей-то как раз жертвовать и не хочется. Даже наоборот, – пытаясь прочесть что-то с экрана в солнечный летний день, чувствуешь искреннее и непреодолимое желание обматерить человека, посоветовавшего тебе ноутбук с такой убогой подсветкой экрана. Впрочем, к вечеру подобные чувства обычно угасают, а ночью так и вообще сходят на нет.

На подсветке можно экономить, но делать это надо с умом. Начиная с версии X.Org 7.3, в стандартный комплект утилит сервера входит программка xbacklight, которая позволяет рулить лампой легко и без лишних телодвижений. Сидя за ноутбуком в недостаточно освещенном помещении, можно ввести следующую команду (70% яркости) и вполне комфортно работать:

# xbacklight -set 70

Вечером или ночью хватит и 50% от общей мощности. При этом в планировщик cron можно добавить особые задания, которые будут включать 100% подсветки утром и днем, 75% - вечером, и 50% - ночью.

Второй важный момент тюнинга графической составляющей – отключение лишних интерфейсов видеокарты (таких, как ТВ-выходы и выходы на внешний монитор). В неактивном состоянии на них также подается энергия и направляется поток видеоданных. По всем законам, встроенная видеокарта должна автоматически определять, подключен ли к дополнительным выходам потребитель, но механизм не всегда срабатывает. Порой интерфейс остается активным. Наша задача с помощью команды xrandr узнать об активных в данный момент выходах и отключить все, кроме LCD панели (LVDS):

# xrandr --output ВЫХОД --off

Ну и напоследок, рекомендую отключить все графические эффекты рабочего стола и хранители экрана, чтобы они не съедали ресурсы проца и 3D-ускорителя.

Процессор

Современные многоядерные процессоры также очень требовательны к энергии. Поэтому в ядре Linux предусмотрено несколько механизмов, позволяющих минимизировать связанные с ними энергозатраты. Наиболее эффективный из них - перевод процессора в энергосберегающий режим (P-state), который уже давно поддерживается ядром и отлично работает. Чтобы проверить, включен ли этот механизм в нашем ядре и поддерживается ли он процессором, выполним следующую команду:

# ls /sys/devices/system/cpu/cpu0/cpufreq

Если каталог существует, значит, все в порядке. Теперь можно проверить доступные регуляторы и переключить процессор в режим автоматического снижения частоты и вольтажа при низких нагрузках:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
# echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Кроме того, рекомендую включить так называемый «режим сохранения энергии для многоядерных процессоров»:

# echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

Работая в нем, ядро сначала попытается по полной загрузить одно из ядер процессора и только после этого начнет перекладывать задачи на другие. В ситуациях, когда нагрузка на процессор невысока, такой режим поможет сохранить заметную часть энергоресурсов.

Коммуникации

Следующий шаг - тюнинг сетевых компонентов ноутбука. Честно скажу, в этом деле особой экономии мы не добьемся, но все-таки сможем сохранить лишние 2-3 Ватта энергии и потешить свое самолюбие.

Первое, что следует сделать - отключить опцию Wake On Lan сетевой карты. Механизм нужен для автоматического включения компа после получения определенного пакета на интерфейс сетевой карты. Штука эта бывает быть очень полезной для стационарного домашнего сервера, который можно засунуть в чулан и включать/выключать без использования стремянки, но на лаптопе толку от нее мало. Кроме того, будучи включенным, этот механизм заставит сетевую карту бодрствовать всегда, и драгоценные Ватты энергии помаленьку вытекут из ноутбука.

Wake on Lan легко отключается через настройки BIOS или же с помощью утилиты ethtool:

# ethtool -s eth0 wol d

Набрав команду «ethtool eth0», в поле Wake-on узнаем о текущем состоянии данной опции (g - включена, d - отключена).

Если ты часто подключаешь ноутбук к высокоскоростным локальным сетям, работающим на скорости 1 Гбит/с (немного странно звучит, но встречается), то скорость передачи сетевой карты лучше снизить до 100 Мбит/с (или даже до 10 Мбит/с). Дело в том, что чем выше эта скорость, тем больше аналоговый преобразователь сетевой карты будет тратить энергии на передачу данных. Поэтому снова запускаем ethtool:

# ethtool -s eth0 autoneg off speed 100

Опция «autoneg off» отключает автоматическое определение скорости передачи, а «speed 100» - ограничивает ее до 100 Мбит/с. Вернуть все в прежнее состояние можно с помощью следующей команды (если, конечно, твоя сетевуха по дефолту работает в гигабитном режиме):

# ethtool -s eth0 autoneg on speed 1000

Мало кто из владельцев ноутбуков знает, что современные WiFi-адаптеры и точки доступа поддерживают специальный протокол PS-Poll (Power Save Poll protocol), способный сократить, как минимум, вдвое энергозатраты на передачу данных, – и что по умолчанию поддержка этого протокола отключена. Протокол PS-Poll основан на очень простой схеме временного отключения питания адаптера между передачами данных. Некоторое время адаптер работает в полную силу, затем посылает специальное сообщение точке доступа и обесточивается. Получив сообщение, точка доступа приостанавливает все передачи этому узлу до момента, пока не получит сообщение о возобновлении работы. Перерывы между включениями и отключениями питания очень коротки, поэтому если ты не любитель онлайн-игр «по воздуху», можешь смело включать протокол, заплатив цену в виде небольших задержек:

# iwpriv eth1 set_power 5

Число здесь говорит о том, какой из уровней энергосбережения следует активировать. Всего существует шесть уровней: 1 - самый низкий уровень энергосбережения, дающий наиболее низкие задержки, 5 - самый высокий, 6 - отключение энергосбережения. Пятый уровень не всегда будет оптимальным, поэтому советую поэкспериментировать, если задержки станут слишком большими.

Если ты совсем не пользуешься услугами WiFi-адаптера, то самое время отключить его и сэкономить чуточку энергии для других нужд. Многие ноутбуки оснащены специальным выключателем на передней панели, но если ты «счастливый» обладатель модели без такового, то отключить все WiFi-адаптеры можно так:

# for i in `find /sys -name "rf_kill"`; do echo 1 > $i; done

Первоначальное состояние возвращается с помощью обратной команды:

# for i in `find /sys -name "rf_kill"`; do echo 0 > $i; done

Кроме WiFi, современные ноутбуки также снабжены другим радио-интерфейсом - bluetooth, который, находясь в неактивном состоянии, тоже помаленьку высасывает из аккумулятора соки. Поэтому, если ты не любитель постоянно блуждать в интернете через сотовый телефон, то рекомендую отключить и его:

# hciconfig hci0 down
# rmmod hci_usb

Да, – лаптопные bluetooth-адаптеры обычно соединены с остальным хозяйством через внутренний USB-интерфейс.

Привод

Может и покажется странным, но стандартная функция автоопределения наличия диска в DVD-приводе тоже может откушать добрую часть энергии. Дело в том, что все графические окружения пользователя, будь то Gnome, KDE, XFCE или еще что-то, полагаются в этом деле на специальный демон hald, который занимается оповещением других программ о произошедших изменениях в железе компа. Загвоздка в том, что наличие диска hald проверяет абсолютно нерациональным способом - с помощью опроса привода каждые 2 секунды. Поэтому если тебя не напрягает вводить команду монтирования CD вручную, то лучше отключить эту фичу:

# hal-disable-polling --device /dev/cdrom

Звук

Аудио. Все хотят слушать музыку и смотреть фильмы на ноуте, но и за это приходится платить энергией. Конечно, в то время, когда устройство активно, то есть проигрывает что-либо, затраты энергии можно снизить разве что уменьшением уровня громкости, а вот для неактивного состояния есть небольшой рецепт.

Подавляющее большинство уже устаревших ноутбуков и материнских плат оснащено аудиочипом AC97, который поддерживает энергосберегающий режим в неактивном состоянии. Linux-драйвер чипа умеет включать такой режим, но не делает этого по умолчанию из-за проблем с треском во время переходов из одного состояния в другое. Благо, перевести чип в энергосберегающий режим нетрудно, достаточно вбить команду:

# echo 1 > /sys/module/snd_ac97_codec/parameters/power_save

В современные ноутбуки обычно встраивают чип с технологией Intel HD Audio, поддерживающей воспроизведение большего количества каналов с высоким качеством. Он также не прочь сохранить пару Ватт энергии и делает это по умолчанию, благодаря качественному ALSA-драйверу. Можешь в этом убедиться, набрав:

# cat /sys/module/snd_hda_intel/parameters/power_save

И последнее. Обзаведись утилитой powertop! С ее помощью ты не только узнаешь, как и в каких ситуациях твой процессор переключается между энергосберегающими режимами, но и сможешь выявить самые прожорливые в плане энергии программы.



Теги: Linux , настройка , энергопотребление





СЛЕДУЮЩИЕ СТАТЬИ
Умная стратегия обновления позволит сохранить исправность системы
10 наиболее важных Open Source проектов 2011
Oracle оставляет базы данных уязвимыми
IPv6: время действовать
Раз заплатка, два заплатка: зачем нужны бинарные патчи, и как ими пользоваться
Прав достаточно: 8 приемов для обхода групповых политик в домене
Windows 7 PORTABLE: делаем загрузочную флешку с "семеркой" на борту
Суперкомпьютер из видеокарты: задействуем возможности GPU для ускорения софта
SELinux: бронежилет для корпоративного пингвина
Генеральный директор Red Hat: "Я не имею ни малейшего понятия, что дальше"
ПРЕДЫДУЩИЕ СТАТЬИ
Выжать максимум: тонкая настройка производительности серверных версий Windows
LiveCD: обзор живых дистрибутивов Linux для системного администратора
Windows 7: бета-экскурсия
Сетевой коп: изучаем возможности новой технологии защиты сетевого доступа NAP
Властелин виртуальных машин: практические советы по развертыванию виртуальной инфраструктуры
Критерии безопасности
На страже безопасности: pfSense - дистрибутив для создания роутера
Почему операционные системы ненадежны: тенденции развития хакерских атак
История случаных падений IE и WMP
Android: мобильный Linux от Google
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
13.03.2009 22:29:51
Ответить Ссылка
Snochalo nachil chitat bilo len ne interestno, patom chut prochital i USHEL i prochital wse STATIYU. STATIYA ne plohaya, i polezdnaya.Zdesa na www.xakep.ru ochen mnogo novichkov, wod eto ne pomeshalobi im pochitat, STATIYA polezdnaya.
UserГость
13.03.2009 23:46:42
Ответить Ссылка
Статья лоховская... с антивирусами что делать будиш, они же к винту обращаются постоянно...
UserГость
13.03.2009 23:59:09
Ответить Ссылка
quote:

Статья лоховская... с антивирусами что делать будиш, они же к винту обращаются постоянно...

а антивирусы просто не нужны на linux :-D
UserГость
14.03.2009 0:14:34
Ответить Ссылка
>Статья лоховская... с антивирусами что делать будиш, они же к винту обращаются постоянно...

Ляпнул... %)
UserГость
14.03.2009 7:37:12
Ответить Ссылка
quote:

Zdesa na www.xakep.ru ochen mnogo novichkov

это всё объясняет :)
UserГость
14.03.2009 11:38:32
Ответить Ссылка
Статья лоховская... с антивирусами что делать будиш, они же к винту обращаются постоянно...

убил xDDD
UserГость
14.03.2009 11:40:27
Ответить Ссылка
эммм.... некоторые меры просто "драконовские". Но некоторые норм (допустим dvdrom и подсветка)
UserГость
14.03.2009 11:55:26
Ответить Ссылка
А частый старт\остановка hdd не уменьшает его срок жизни?
UserГость
15.03.2009 18:02:16
Ответить Ссылка
quote:

А частый старт\остановка hdd не уменьшает его срок жизни?

да, уменьшит
UserГость
17.03.2009 13:04:01
Ответить Ссылка
Статья полный отстой. Ясно одно. Те кто сидят на Деревянном линухе получают мало денег ... если нужно сохранить длительность работы нотнику ...МЛЯЯ КУПИТЕ ВТОРОЙ АКАМУЛЯТОР ДЛЯ НОТНИКА. И НЕ Парьтесь.. Я простоубиваюсь с вас линуксоидов на какие ухищрения вы идете чтоб облегчить себе жизнь . И лучще зарабатывали деньги ..чем думали как линух запихнуть в калькулятор или другие подобные идеи ..
UserГость
17.03.2009 15:14:46
Ответить Ссылка
>> КУПИТЕ ВТОРОЙ АКАМУЛЯТОР ДЛЯ НОТНИКА. И НЕ Парьтесь.

Во-первых, зачем тратить деньги на второй аккамулятор, когда можно увеличить срок "жизни" так? Во-вторых, можно купить его, но пользоваться обоими дольше :))))))

>> чем думали как линух запихнуть в калькулятор

Линукс на калькуляторе - не такая уж и плохая идея :)))
UserГость
18.03.2009 12:15:02
Ответить Ссылка
Винт лучше не трогать . так как частое стоп/парковка/старт очень легко за год активного прользования ноута выыведут винт из строя. ну или винты ставить с увеличинным временем на отказоустойчивость.
UserГость
11.04.2009 5:31:05
Ответить Ссылка
Благодарю за очень полезную статью.
Моему нетбуку, EeePC 901 с Debian Lenny на борту, стало намного лучше после применения бОльшего количества ваших советов.
Можно еще внести в обзор динамическое изменение частоты процессора в зависимости от нагрузки.
С благодарностью,
GreenHat
UserГость
18.04.2009 1:55:54
Ответить Ссылка
Давно сюда не заходил. Прочел статью, камменты и офигел. Тут теперь собираются школьники младших классов что ли? Че за бред, господа кул хакцеры? Омбмельчали, мля
UserГость
30.04.2009 14:07:21
Ответить Ссылка
Прикольные ребята виндоводы с антивирями и богатые пыжики,готовые покупать по десять батарей для ноута. Ноут весит 2.3-2.7 кг да к нему еще кило батарей тягать вместо того, чтобы просто сделать ноут экономней. Надо полагать, что господа виндузятники уже забили на экономию в связи с ее невозможностью.
Автору Спасибы. Собрал инфу воедино -- полезная статья.
UserГость
18.11.2009 9:10:22
Ответить Ссылка
>> КУПИТЕ ВТОРОЙ АКАМУЛЯТОР ДЛЯ НОТНИКА. И НЕ Парьтесь.

ага, купи пару автомобильных аккумуляторов, засунь их в рюкзак и подцепи к ноуту... безотказный вариант для не мегакачков...




Keywords: zPOSTz zOSz, zINFOz, zYANDEXz z47465z
Для Авторов: edit Lock delete Lock



    Rambler's Top100