Пингвин дальнего плавания. Методики продления жизни ноутбукаЕвгений «j1m» Зобнин (zobnin@gmail.com) Когда речь заходит о сохранении энергии на мобильных устройствах, компромисса быть не может. Продление жизни ноутбука на 20 минут зачастую значит гораздо больше, чем отзывчивость системы или скорость доступа к жесткому диску. В ход идут даже самые хардкорные методы сбережения драгоценных Ватт. ДискиНачнем с одного из самых требовательных к энергии компонентов - жесткого диска. Являясь чуть ли не единственным на борту (за исключением кулеров) жизненно важным механическим устройством, он может серьезно сократить срок службы батареи любого ноутбука. И проблема тут даже не в том, что современный Linux часто «общается» с файловой системой, – просто шпиндель винчестера вращается слишком долго между уходами в сон и поэтому успевает отхватить солидный кусок батарейки. Исправить ситуацию можно с помощью небезызвестной утилиты hdparm:
Здесь с помощью опции «-B 1» мы включили самый «агрессивный» уровень сбережения энергии. Существует всего 254 подобных уровней: с 1 по 127 останавливают в случае необходимости шпиндель винчестера, а более высокие уровни этого не делают. Все современные ноутбучные жесткие диски поддерживают энергосбережение, но для уверенности лучше запустить команду «hdparm -i /dev/sda» и в выводе найти поле AdvancedPM. Опция «-S 12» говорит о том, что шпиндель должен останавливаться через 60 секунд бездействия жесткого диска. Всего существует 255 значений данной опции: значения с 1 до 240 просто умножаются на 5 секунд, а 0 вовсе отключает остановку шпинделя. После проведенных манипуляций, по логике вещей, хорошо бы сделать так, чтобы количество обращений к жесткому диску сократилось до минимума. Тогда большую часть времени винчестер будет проводить во сне, сохраняя драгоценные Ватты. Первое, что необходимо сделать: включить так называемый «режим ноутбука» для подсистемы виртуальной памяти:
Работая в таком режиме, ядро будет по возможности откладывать запись на диск, пока в этом не появится неотложная необходимость. Все буферы, требующие сброса себя на диск, будут терпеливо ожидать своей очереди. Увеличить перерыв между записями на диск можно также с помощью поднятия таймаута между сбросом «грязных» буферов (части файлов, измененные программой или пользователем, но еще не записанные на диск) с 5 секунд до 15 – или даже 30:
Помехой произведенным оптимизациям станет syslogd. Он требует обязательной синхронизации файловой системы после каждой записи в журнал (тот самый сброс «грязных» буферов на диск и очистка буфера самого жесткого диска). К счастью, такое поведение журнального демона легко отключить путем добавления знака «минус» в начало каждого пути к журналу в файле /etc/syslog.conf. Также попробуем отключить опцию atime для файловой системы. Эта опция по умолчанию активирована в любой ФС и нужна для записи времени последнего обращения к файлу (так требует стандарт POSIX). Проблема в том, что подобная запись нуждается в дополнительном обращении к суперблоку файловой системы. Это влечет за собой не только энергозатраты, но и лишнюю нагрузку на ФС. Отключается atime указанием опции noatime во время монтирования ФС:
К сожалению, включение опции noatime приведет к тому, что почтовые клиенты и программы нотификации о новой почте перестанут правильно работать. Поэтому, если корректное поведение подобных приложений жизненно важно, можно прибегнуть к компромиссному решению - опции relatime. После ее включения ядро будет обновлять время последнего обращения к файлу только в том случае, если предыдущее время доступа было раньше, чем текущее время изменения файла. Как вариант, для почты можно сделать отдельный раздел, скажем, /var/mail, и монтировать его со стандартными опциями. Учти, что приведенные выше приемы не пройдут даром. Снижение времени бодрствования жесткого диска может вылиться в преждевременный выход его из строя (все помнят поучительную историю о дохнущих за полгода винчестерах ноутбуков, работающих под управлением Ubuntu?). Включение «режима ноутбука» и увеличение времени отложенной записи буферов приведет к большей вероятности потери данных в момент аварийного отключения питания (правда, страшно это только для настольных компов без UPS). Включение опции noatime повлечет за собой некорректную работу почтовых программ и некоторого процента других приложений. Отмена обязательной синхронизации в syslogd обернется потерей последних журнальных записей в момент отключения питания. ГрафикаНе секрет, что самой жадной до энергии частью ноутбука является лампа, подсвечивающая LCD-экран с обратной стороны. Беда в том, что ей-то как раз жертвовать и не хочется. Даже наоборот, – пытаясь прочесть что-то с экрана в солнечный летний день, чувствуешь искреннее и непреодолимое желание обматерить человека, посоветовавшего тебе ноутбук с такой убогой подсветкой экрана. Впрочем, к вечеру подобные чувства обычно угасают, а ночью так и вообще сходят на нет.
Вечером или ночью хватит и 50% от общей мощности. При этом в планировщик cron можно добавить особые задания, которые будут включать 100% подсветки утром и днем, 75% - вечером, и 50% - ночью. Второй важный момент тюнинга графической составляющей – отключение лишних интерфейсов видеокарты (таких, как ТВ-выходы и выходы на внешний монитор). В неактивном состоянии на них также подается энергия и направляется поток видеоданных. По всем законам, встроенная видеокарта должна автоматически определять, подключен ли к дополнительным выходам потребитель, но механизм не всегда срабатывает. Порой интерфейс остается активным. Наша задача с помощью команды xrandr узнать об активных в данный момент выходах и отключить все, кроме LCD панели (LVDS):
Ну и напоследок, рекомендую отключить все графические эффекты рабочего стола и хранители экрана, чтобы они не съедали ресурсы проца и 3D-ускорителя. ПроцессорСовременные многоядерные процессоры также очень требовательны к энергии. Поэтому в ядре Linux предусмотрено несколько механизмов, позволяющих минимизировать связанные с ними энергозатраты. Наиболее эффективный из них - перевод процессора в энергосберегающий режим (P-state), который уже давно поддерживается ядром и отлично работает. Чтобы проверить, включен ли этот механизм в нашем ядре и поддерживается ли он процессором, выполним следующую команду:
Если каталог существует, значит, все в порядке. Теперь можно проверить доступные регуляторы и переключить процессор в режим автоматического снижения частоты и вольтажа при низких нагрузках:
Кроме того, рекомендую включить так называемый «режим сохранения энергии для многоядерных процессоров»:
Работая в нем, ядро сначала попытается по полной загрузить одно из ядер процессора и только после этого начнет перекладывать задачи на другие. В ситуациях, когда нагрузка на процессор невысока, такой режим поможет сохранить заметную часть энергоресурсов. КоммуникацииСледующий шаг - тюнинг сетевых компонентов ноутбука. Честно скажу, в этом деле особой экономии мы не добьемся, но все-таки сможем сохранить лишние 2-3 Ватта энергии и потешить свое самолюбие. Первое, что следует сделать - отключить опцию Wake On Lan сетевой карты. Механизм нужен для автоматического включения компа после получения определенного пакета на интерфейс сетевой карты. Штука эта бывает быть очень полезной для стационарного домашнего сервера, который можно засунуть в чулан и включать/выключать без использования стремянки, но на лаптопе толку от нее мало. Кроме того, будучи включенным, этот механизм заставит сетевую карту бодрствовать всегда, и драгоценные Ватты энергии помаленьку вытекут из ноутбука. Wake on Lan легко отключается через настройки BIOS или же с помощью утилиты ethtool:
Набрав команду «ethtool eth0», в поле Wake-on узнаем о текущем состоянии данной опции (g - включена, d - отключена). Если ты часто подключаешь ноутбук к высокоскоростным локальным сетям, работающим на скорости 1 Гбит/с (немного странно звучит, но встречается), то скорость передачи сетевой карты лучше снизить до 100 Мбит/с (или даже до 10 Мбит/с). Дело в том, что чем выше эта скорость, тем больше аналоговый преобразователь сетевой карты будет тратить энергии на передачу данных. Поэтому снова запускаем ethtool:
Опция «autoneg off» отключает автоматическое определение скорости передачи, а «speed 100» - ограничивает ее до 100 Мбит/с. Вернуть все в прежнее состояние можно с помощью следующей команды (если, конечно, твоя сетевуха по дефолту работает в гигабитном режиме):
Мало кто из владельцев ноутбуков знает, что современные WiFi-адаптеры и точки доступа поддерживают специальный протокол PS-Poll (Power Save Poll protocol), способный сократить, как минимум, вдвое энергозатраты на передачу данных, – и что по умолчанию поддержка этого протокола отключена. Протокол PS-Poll основан на очень простой схеме временного отключения питания адаптера между передачами данных. Некоторое время адаптер работает в полную силу, затем посылает специальное сообщение точке доступа и обесточивается. Получив сообщение, точка доступа приостанавливает все передачи этому узлу до момента, пока не получит сообщение о возобновлении работы. Перерывы между включениями и отключениями питания очень коротки, поэтому если ты не любитель онлайн-игр «по воздуху», можешь смело включать протокол, заплатив цену в виде небольших задержек:
Число здесь говорит о том, какой из уровней энергосбережения следует активировать. Всего существует шесть уровней: 1 - самый низкий уровень энергосбережения, дающий наиболее низкие задержки, 5 - самый высокий, 6 - отключение энергосбережения. Пятый уровень не всегда будет оптимальным, поэтому советую поэкспериментировать, если задержки станут слишком большими. Если ты совсем не пользуешься услугами WiFi-адаптера, то самое время отключить его и сэкономить чуточку энергии для других нужд. Многие ноутбуки оснащены специальным выключателем на передней панели, но если ты «счастливый» обладатель модели без такового, то отключить все WiFi-адаптеры можно так:
Первоначальное состояние возвращается с помощью обратной команды:
Кроме WiFi, современные ноутбуки также снабжены другим радио-интерфейсом - bluetooth, который, находясь в неактивном состоянии, тоже помаленьку высасывает из аккумулятора соки. Поэтому, если ты не любитель постоянно блуждать в интернете через сотовый телефон, то рекомендую отключить и его:
Да, – лаптопные bluetooth-адаптеры обычно соединены с остальным хозяйством через внутренний USB-интерфейс. ПриводМожет и покажется странным, но стандартная функция автоопределения наличия диска в DVD-приводе тоже может откушать добрую часть энергии. Дело в том, что все графические окружения пользователя, будь то Gnome, KDE, XFCE или еще что-то, полагаются в этом деле на специальный демон hald, который занимается оповещением других программ о произошедших изменениях в железе компа. Загвоздка в том, что наличие диска hald проверяет абсолютно нерациональным способом - с помощью опроса привода каждые 2 секунды. Поэтому если тебя не напрягает вводить команду монтирования CD вручную, то лучше отключить эту фичу:
ЗвукАудио. Все хотят слушать музыку и смотреть фильмы на ноуте, но и за это приходится платить энергией. Конечно, в то время, когда устройство активно, то есть проигрывает что-либо, затраты энергии можно снизить разве что уменьшением уровня громкости, а вот для неактивного состояния есть небольшой рецепт.
В современные ноутбуки обычно встраивают чип с технологией Intel HD Audio, поддерживающей воспроизведение большего количества каналов с высоким качеством. Он также не прочь сохранить пару Ватт энергии и делает это по умолчанию, благодаря качественному ALSA-драйверу. Можешь в этом убедиться, набрав:
И последнее. Обзаведись утилитой powertop (www.lesswatts.org/projects/powertop)! С ее помощью ты не только узнаешь, как и в каких ситуациях твой процессор переключается между энергосберегающими режимами, но и сможешь выявить самые прожорливые в плане энергии программы. Твердотельные диски и экономия электроэнергииИзвестное утверждение о том, что накопители на основе flash-памяти (или твердотельные диски, как их иногда называют) легко спасут батареи мобильных устройств от преждевременной разрядки, на деле совершенно расходится с истиной. Не так давно проведенные тесты показали, что время работы ноутбука, снабженного такой памятью, оказалось даже ниже идентичной модели с винчестером в недрах. Благо, производители flash-накопителей быстро успокоили общественность, заявив, что проблема энерго-обжорства им известна давно, и объявили о скором выходе моделей, лишенных такой неприятной особенности. Шаг в сторону увеличения автономной работыТехнология Intel SpeedStep позволяет управлять производительностью мобильного компьютера. Когда ноут питается от сети, он может работать на максимуме своих возможностей. При работе от батарей снижается тактовая частота процессора (за счет изменения делителей частоты шины) и напряжение его питания, благодаря чему время автономной работы увеличивается при сохранении высокой производительности. Комментарий редактораМой домашний сервер - это ноутбук Compaq Evo N620c (Pentium M 1,3 GHz/1 Gb RAM/40 Gb HDD) под управлением OpenBSD 4.4-current, работающий в «холодном» режиме (600 MHz) для сокращения тепловыделения, шума и потребления электроэнергии:
Конфигурационный файл hdparmВ основанных на Debian дистрибутивах есть специальный конфигурационный файл /etc/hdparm.conf, читаемый во время загрузки. В него ты можешь вписать все необходимые значения для конкретного диска. Вот пример - аналог настройки hdparm, приведенной в начале статьи:
INFOВ настоящий момент в процессорах Intel реализованы следующие технологии управления производительностью и энергопотреблением: детектор аварийного перегрева, механизм автоматического термального мониторинга, модуляция тактовой частоты по запросу, технология Enhanced Intel SpeedStep. |