Управление питанием в Линукс, часть 2
Оригинал: Power Management on Linux, Part 2
Автор: Carla Schroder
Дата: 17 апреля 2008
Перевод: Н. Глущенко
Дата перевода: 25 апреля 2008
5 режимов выключения компьютера.
В первой части мы узнали, как измерить количество потребляемой энергии вашей системой посредством как специальных приборов, так и программного обеспечения. А также рассмотрели несколько способов, благодаря которым можно уменьшить энергопотребление, не нанося при этом вреда производительности. Сегодня мы погрузимся в мир управления питания на ноутбуках: ACPI, APM, включение и отключение жёстких дисков.
Главная задача в управлении питания на ноутбуках — выжать побольше времени из аккумулятора. Положение в этой области ухудшается из-за того, что ноутбуки становятся всё более мощными и используют большие дисплеи. Например, мой старый Thinkpad R32 работал 3 часа на аккумуляторе, а новый сверкающий двуядерный T61 с трудом протягивает 2 часа. Новые машины ярче и быстрее. Современные ноутбуки с широкоэкранным глянцевым дисплеем работают не дольше 90 минут.
Вы можете увеличить время работы, уменьшив яркость дисплея. К тому же мобильные процессоры можно настроить для более медленной работы. В таком случае работа на старом ноутбуке — не такая уж плохая идея, потому что получаем тот же эффект, но без лишних забот.
Перерыв в работе — основная проблема пользователей ноутбуков, потому что включение и выключение компьютера занимает время и энергию. Вот почему существует несколько степеней отключения:
- Ожидание;
- Приостановка;
- Сон;
- Гибернация;
- Полное отключение;
Это не официальные названия, в соответствии с ACPI (Advanced Configuration and Power Interface) они выглядят следующим образом:
- S1- в Линукс это называется «режим ожидания». Процессор переходит в состояние ожидания, кэш процессора очищается. Все устройства всё ещё включены и также находятся в состоянии ожидания, экран выключен;
- S2 — этот режим включен в характеристику ACPI, но используется редко;
- S3 — сброс в ОЗУ. Содержимое регистров процессора записывается в оперативную память, сам процессор отключается. Всё остальное оборудование, включая сеть, также отключается. Работает только ОЗУ.
- S4 — сброс на диск или гибернация. Текущее состояние системы записывается на жёсткий диск и все устройства отключается, кроме сетевого интерфейса с функцией wake-on-LAN.
Компьютеры быстро включаются из режимов S1 и S3, вы получаете систему в том состоянии, в котором она была до выключения. Но эти режимы чувствительны к перебоям в питании, поэтому вы можете потерять всю не сохраненную информацию. Включение из режима гибернации занимает больше времени, потому что состояние системы записывается на жесткий диск, но за то компьютер в этом режиме потребляет меньше энергии.
ACPI против APM
APM (Advanced Power Management) — старый набор утилит для управления питанием на Линукс. Он крайне прост и основные функции по управлению энергопотреблением APM возлагает на BIOS вашего компьютера. ACPI (Advanced Configuration and Power Interface) — современная замена APM. Стандарт ACPI имеет ряд преимуществ над своим старым собратом, например: управление энергопотреблением предоставляется операционной системе, а не BIOS.
Компания Intel первая начала вводить технологию динамического энергопотребления для центрального процессора. Теперь процессоры Intel и AMD распределяют энергопотребление в зависимости от нужд. Сетевые интерфейсы, видеокарты и жёсткие диски под управлением ACPI могут перейти в режим ожидания.
ACPI также поддерживается Windows. Однако, это вызывает ряд проблем, связанных с известной привычкой Microsoft реализовывать стандарты своими нестандартными способами. Несмотря на это, некоторые производители ноутбуков проверяют ACPI в связке с основными дистрибутивами Линукс. Lenovo Thinkpads и ASUS в этом плане мне больше всего нравятся. Ноутбуки Toshiba и Fujitsu тоже хороши, и влияние Линукса на них благоприятно скажется.
Если вы нуждаетесь в простом и удобном управлении питанием на ноутбуке, то я рекомендую вам использовать дистрибутив Линукс, который поддерживает всё это, как говорится, из коробки. Поддержка ACPI включена в свежие релизы Fedora, Ubuntu, SUSE и Mandriva и наверняка в некоторые другие. У Fedora отличное меню настроек, а в опциях отключения есть режимы приостановки и гибернации. Также можно настроить приостановку и гибернацию при закрывании дисплея ноутбука. Просто и понятно, как и должно быть.
В современных дистрибутивах ACPI настроен по умолчанию. Это легко проверить, следующая команда скажет вам, поддерживает ли ваше ядро ACPI:
$ grep -i acpi_sleep /boot/config-‘uname -r’
Или проверьте какой демон запущен:
$ ps ax|egrep «apmd|acpi»
4720 ? S 0:00 hald-addon-acpi: listening \
on acpid socket /var/run/acpid.socket
5239 ? Ss 0:00 /usr/sbin/acpid -c \
/etc/acpi/events -s /var/run/acpid.socket
Эти примеры показывают, что ACPI поддерживается и работает.
Пакет laptop-mode-tools — интересный инструмент для настройки энергопотребления жёсткого диска на вашем ноутбуке. Эти утилиты поддерживают также работу с другими устройствами, но их основная направленность — управление включением и выключением жёсткого диска. laptop-mode-tools работает следующим образом: в периоды, когда вы не работаете с жёстким диском — он отключается, а включается при первом же обращении. Таким образом на работу системы затрачивается меньше энергии. Однако, у этого метода есть существенный недостаток: его лучше применять только к жёстким дискам для ноутбуков, потому что их жизненный цикл рассчитан на 600 000 включений. А для десктопов эта цифра составляет всего 50 000 включений, поэтому использование laptop-mode-tools может быстро вывести из строя ваш винчестер. 30 секунд в минуту — оптимальный интервал отключения, большее значение не способствует экономии электроэнергии.
laptop-mode-tools входит в состав Debian и Ubuntu. Для других дистрибутивов этот пакет можно найти на сайте Laptop Mode . laptop-mode-tools автоматически интегрируется в ACPI, поэтому этот инструмент в курсе когда ваш ноутбук работает от аккумулятора.
Карла Шрёдер — автор книги «Сборник Рецептов для Линукс» и недавно выпущенного «Сборника Рецептов для сетей Линукс».
Источник
Автоотключение hdd с помощью hdparm
Хотелось бы, чтобы несистемный диск (WD5000AAKX) на десктопном компьютере отключался после отсутствия обращений к нему через 5 минут.
Раньше это делал с помощью gnome-power-manager, потом через mate-power-manager, потом xfce4-power-manager. В общем, выбирал легкий путь. В настоящее время в меню управления питанием в Cinnamon такая настройка отсутствует (хотя в этом же дистрибутиве, установленнм на thinkpad такая настройка есть).
Что я делал:
не помогло
ЧЯДНТ?
1. Как автоматически останавливать диск через 5 минут после последнего обращения?
2. Просто интересно, почему в настройках cinnamon на десктопе отсутствуют настройки остановки hdd, а в том же дистрибе на thinkpad x220 они есть? Что такого было установлено на thinkpad, чего нет на desktop?
Что я делал: >hdparm -B 128 -S 60 /dev/sdb
не помогло. >hdparm -B 128 /dev/sda
Ты хоть в курсе, как диск называется?
Да, это опечатка. В терминале делал /dev/sdb
добавлю еще:
в ответ на первую из команд выдается вот что:
Шпиндель не жалко?
Что я делал: >hdparm -B 128 -S 60 /dev/sdb
не помогло. >hdparm -B 128 /dev/sda
Тут где-то на форуме были темы как посмотреть что дергает диск. У себя за этим занятием ловил то-ли udev (хотя врядли) то-ли udisks. Вобщем что-то обращается диску и просто не успевает пройти 5 минут после последнего обращения. Вот и не засыпает. И, да лучше поставить минут 20, а то будут глюки, когда каждую 5 минуту засыпает, а каждую шестую просыпается. и кирдык маторчику..
мне важнее понять: пока что понятные менеджеры питания видел в gnome и xfce. А как же все остальные, у кого всякие там awesome, lxde и прочее? Как там надежно управлять дисками?
У меня ничего не дергает диск. Это диск с данными, он нужен далеко не каждый раз. Вот в данный момент, когда пишу это, gnome-power-manager(я вернулся на mate) выключил его с характерным звуком выключения hdd. ТАкой же звук у меня был и в винде, когда происходило включение или остановка hdd по необходимости.
Поставить и настроить smartd с оповещением на E-mail? Мне, честно говоря, непонятно, зачем останавливать НЖМД, обычно этим страдают любители SSD, у которых ресурс для перезаписи существенно ограничен по сравнению с НЖМД. Жёсткому диску лучше работать круглосуточно, чем выключать его каждые пять минут. Ресурс количества старт-стопов тоже имеет свой порог в SMART, так на заметку.
Как автоматически останавливать диск через 5 минут после последнего обращения?
Никогда так не делай.
Мне, честно говоря, непонятно, зачем останавливать НЖМД
Жёсткому диску лучше работать круглосуточно
2 причины вопроса: первая — этот диск нужен вообще не каждые сутки. Бывает нужен, а бывает и нет. То, что я хочу — заложено в любой power-manager, например, в gnome-power-manager. второе — понять на будущее, если хотите — то просто ради эксперимента.
Как там надежно управлять дисками?
Всякие laptop-mode-tools которые юзают hdparm
Что я делал: >hdparm -B 128 -S 60 /dev/sdb
не помогло. >hdparm -B 128 /dev/sda
Давай я тебе вслух почитаю man hdparm
-B Get/set Advanced Power Management feature, if the drive supports it. A low value means aggressive power management and a high value means better performance. Possible settings range from values 1 through 127 (which permit spin-down), and values 128 through 254 (which do not permit spin-down). The highest degree of power management is attained with a setting of 1, and the highest I/O performance with a setting of 254. A value of 255 tells hdparm to disable Advanced Power Management altogether on the drive (not all drives support disabling it, but most do).
Строго говоря как будит вести себя диск при определенных значения hdparm -B зависит от производителя диска. Гдето в сети точно лежит pdf’ка на твой диск, где это описано.
выключил его с характерным звуком выключения hdd
.. разумеется вместо /dev/sdb — твой диск. Попробуй запустить в кроне — вернее чем на слух.
Источник
Какими средствами отключать питание диска перед его извлечением?
У меня корпус в котором есть докстанция для подключения сата дисков, а мамка поддерживает хотсвап. Мне нравится такой способ хранения файлов, поэтому я храню их на дисках отдельно от компа (так тише) и подключаю диски только для того чтобы что то оттуда взять или наоборот записать. Но вот такой вопрос, когда делал подобное под виндой, по звуку я слышал что после нажатия «безопасное удаление» или как оно там, венда еще и отключала питание диску. А вот линукс так не делает при размонтировании, в моем конкретном случае. Что мне нужно поставить и где настроить, чтобы тоже было, а то думаю что не на пользу это, отключать питание физическим выдергиванием только.
sg_start -S или hdparm -y попробуй. Но руками, да.
Про hdparm даже знал до этого, но это неудобно, особенно учитывая что оно требует рута пожизни. Может есть что нибудь для кед к примеру, что будет делать это в момент размонтирования?
Кедами не пользуюсь, гном это умеет, udisks2 в обоих случаях один и тот же. Либо эти устройства у тебя не помечены как removable, либо KDE не умеет вызывать org.freedesktop.UDisks2.Drive.PowerOff.
Это systemd? если да то у меня его нет. А где метятся как съёмные?
ССЗБ нет, udisks2 — это не systemd.
В ядре ( /sys/block/sdX/removable ). Как это изменить/форсировать — я не знаю; кажется, никак.
sys-fs/udisks
Latest version available: 2.1.7
Latest version installed: 2.1.7
И что с ним надо сделать?
Тебе — ничего. Проверить removable и если оно взведено в единицу, то пинать кедоразработчиков, а если нет — то ничего не делать.
Ну или сейчас кто-то придёт и расскажет, как из юзерспейса форсировать removable=1 либо в ядре, либо в udisks2.
Втыкаю диск там 0, а вот флешке 1 дает. Это какие то правила в нём самом или внутри кода?
Это комбинация ответов самих устройств и эвристик внутри ядра (типа «всё, что подключается по USB, считать removable»).
С другой стороны, у меня в ThinkPad T540p диск, воткнутый в UltraBay вместо оптического привода, распознаётся как removable. Так что ещё и от прошивки зависит, наверное.
Но на это всё никак не повлиять.
Обрати внимание что дорожки питания и дорожки данных в контактном разьёме имеют разную длину. Так сделано специально, чтобы при подключении\отключении кабеля соблюдалась правильная последовательность подачи питания. Так что если у тебя не корзина, достаточно просто кабель выдёргивать\втыкать без перекосов, специально питание можно не отключать.
Вы в этом уверены или просто услышали что диск перестал крутиться?
Чтобы изъять любой sata-диск из системы достаточно его отмонтировать, потом через /sys/block/sdX/device/delete удалить его из системы после чего можно выдернуть sata-кабель и кабель питания. В вашем случае с «корзиной» просто выдернуть диск.
removable и hotpluggable это две большие разницы
cd/dvd — removable, т.е. начинка меняется, но device (/dev/sdb) не удаляется из системы, а остается тем же самым
ага, вот только «принудительная» парковка головок при пропадании питания стремная вещь
ага, вот только «принудительная» парковка головок при пропадании питания стремная вещь
В теории да, на практике не встречался с проблемами. Думаю она достаточно быстро и надёжно происходит. Если диск туда-сюда каждую минуту тыркать возможно и будут проблемы, при реальном сценарии смены дисков ни разу не встречался с какими либо повреждениями.
Почти корзина, Корпус CM 690 II версия с докстанцией. Диск как бы задвигается в специальное углубление сверху корпуса. Так что перекосы могут быть, ведь рукой.
Ты это не мне рассказывай, а тому, кто в ядре такую номенклатуру ввёл.
А толку? Это только стирает девайс, отключения питания не даёт.
вообще-то останавливает шпиндель и паркует головки.
Обрати внимание что дорожки питания и дорожки данных в контактном разьёме имеют разную длину. Так сделано специально, чтобы при подключении\отключении кабеля соблюдалась правильная последовательность подачи питания. Так что если у тебя не корзина, достаточно просто кабель выдёргивать\втыкать без перекосов, специально питание можно не отключать.
Интересная деталь. А для чего тогда разьем питания такой широкий, если достаточно 4-х контактов?
Алсо вопрос возник, а если ли возможность задать время отключения для конкретного диска относительно его неактивности. Один системный, там же хомяк, другой этакая оперативная фалопомйока с НТФС, на который доступ как с линукса так и с дуалбутной семеры, чтобы играть. Собственно назначение этого диска только хранить на себе всякие видео, игоры и прочее дерьмо, которое нужно не так редко, чтоб поместить на внешний и убрать в шкаф но и не так часто, чтобы быть всегда включенным. Примерно 10-20 раз за день. Был бы неплох некий повер манагемент, типа при простое в час — отрубать питание, потом когда понадобится включать обратно. Но автоматически и только этот диск. Можно ли такое запилить и как, если да?
Источник