Оптимизация энергопотребления Сравнение версий

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:оптимизация_энергопотребления [2011/04/06 23:35]
[Энергосбережение SATA]
wiki:оптимизация_энергопотребления [2015/09/21 20:52] (текущий)
Строка 105: Строка 105:
 ==== Эффективная работа памяти ==== ==== Эффективная работа памяти ====
  
-FIXME+С точки зрения работы с памятью можно оптимизировать процесс записи изменённых данных на диски.
  
- ​8) ​Dirty ratio — максимальный размер памяти (в процентах),​ для хранения грязных данных прежде чем процесс,​ их сгенерировавший,​ будет принужден записать их. Чем выше значение, очевидно, тем реже производится запись и тем меньше активность жесткого диска и системы.  +Dirty ratio — максимальный размер памяти (в процентах),​ для хранения ​"грязных" ​данных. При ​превышении этого объёма данных ​процесс,​ их сгенерировавший,​ будет принужден записать их. Очевидно,​ чем выше значение,​ тем реже производится запись и тем меньше активность жесткого диска и системы:
-    echo 10 > /​proc/​sys/​vm/​dirty_ratio  +
-  echo 90 > /​proc/​sys/​vm/​dirty_ratioe #при работе от батареи+
  
- 9) Dirty background ratio — минимальное число памяти (в процентах),​ где позволено хранить гразные данные вместо записи на диск. Этот параметр должен быть намного меньше чем dirty_ratio что бы позволить записывать куски грязных данных за один проход. +<code bash> 
-  echo > /​proc/​sys/​vm/​dirty_background_ratio ​#в нормальном режиме +echo 10 > /​proc/​sys/​vm/​dirty_ratio  ​при ​работе от сети 
-  echo > /​proc/​sys/​vm/​dirty_background_ratio ​#в режиме энергосбережения+echo 90 > /​proc/​sys/​vm/​dirty_ratio ​при работе от батареи 
 +</​code>​
  
- 10) Dirty Writeback sentisecs — как часто ядро должно проверять есть ли «грязные» (измененные) данные для записи на диск (в сантисекундах). Чем выше значение, очевидно, тем реже используется диск для записи грязных данных +Dirty background ratio — минимальное число памяти (в процентах), где позволено хранить "​гразные"​ данные вместо записи на диск. Этот параметр должен быть намного меньше,​ чем dirty_ratio,​ чтобы позволить записывать куски грязных данных за один проход. 
-  echo 6000 > /​proc/​sys/​vm/​dirty_writeback_centisecs + 
-  echo 60000 > /​proc/​sys/​vm/​dirty_writeback_centisecs #для энергосбережения+<code bash> 
 +echo 5 > /​proc/​sys/​vm/​dirty_background_ratio #в нормальном режиме 
 +echo 1 > /​proc/​sys/​vm/​dirty_background_ratio #в режиме энергосбережения 
 +</​code>​ 
 + 
 +Dirty Writeback sentisecs — как часто ядро должно проверять есть ли "грязные" ​(измененные) данные для записи на диск (в сантисекундах). Чем выше значение,​ тем реже используется диск для записи грязных данных
 + 
 +<code bash> 
 +echo 6000 > /​proc/​sys/​vm/​dirty_writeback_centisecs  ​# при работе от сети 
 +echo 60000 > /​proc/​sys/​vm/​dirty_writeback_centisecs # для энергосбережения 
 +</​code>​
  
 ==== Энергосбережение PCI Express ==== ==== Энергосбережение PCI Express ====
Строка 127: Строка 136:
 echo default > /​sys/​module/​pcie_aspm/​parameters/​policy ​   # Выключаем echo default > /​sys/​module/​pcie_aspm/​parameters/​policy ​   # Выключаем
 </​code>​ </​code>​
 +
 +==== Отключение дискретной видеокарты ====
 +
 +<note warning>​Метод работает до Ubuntu 13.10 включительно.</​note>​
 +
 +Во многих ноутбуках имеется возможность переключаться между встроенным графическим чипом, маломощным и малотребовательным к электроэнергии,​ и сравнительно сильной и энергоемкой картой. Многим пользователям производительная графическая карта нужна редко, поэтому имеет смысл отключить ее по умолчанию с возможностью быстрого и безболезненного включения.
 +
 +В версиях ядра, начиная с 2.6.34, присутствует механизм vga_switcheroo,​ позволяющий переключаться между видеокартами. То есть в Ubuntu 10.10 он есть по умолчанию. Пользоваться им достаточно просто.
 +
 +Вначале выполняем:​
 +
 +<code bash>
 +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)
 +</​code>​
 +
 +Зная, какой GPU как обозначается,​ можно посмотреть,​ какой из них в каком состоянии:​
 +
 +<code bash>
 +cat /​sys/​kernel/​debug/​vgaswitcheroo/​switch
 +0: :​Pwr:​0000:​01:​00.0
 +1:​+:​Pwr:​0000:​00:​02.0
 +</​code>​
 +
 +Плюсик стоит на против видеочипа,​ который используется в данный момент,​ Pwr означает,​ что видеокарта включена и потребляет энергию.
 +
 +<note important>​Чаще всего для всех ноутбуков с двумя видеокартами картина одинаковая:​ что бы вы не делали,​ при загрузке системы обе карты работают,​ при этом для вывода используется встроенная «слабая» графика. Это нам на руку, ибо обесточивание неактивной видеокарты происходит бескровно.</​note>​
 +
 +Команда
 +
 +<code bash>
 +echo OFF > /​sys/​kernel/​debug/​vgaswitcheroo/​switch
 +</​code>​
 +
 +отключает неиспользуемую GPU сразу же. Поэтому мы обратимся к файлу /​etc/​rc.local,​ добавив в него вышеуказанную команду (перед строчкой exit 0). Так, при загрузке систему дискретная видеокарта уже будет отключена и не нужно будет беспокоиться ни о чем:
 +
 +<​file>​
 +0: :​Off:​0000:​01:​00.0
 +1:​+:​Pwr:​0000:​00:​02.0
 +</​file>​
 +
 +<note important>​Судя по всему vga_switcheroo не работает,​ если установлены проприетарные драйверы на дискретную видеокарту.</​note>​
 +
 +Кстати,​ если вы хотите переключаться между видеокартами через графический интерфейс,​ можете установить [[http://​sites.google.com/​site/​ubuntucontrolcenter/​|Ubuntu Control Center]]. Программа представляет собой панель управления параметрами Ubuntu, но нас она интересует исключительно из-за опции переключения между GPU (естественно,​ здесь это тоже происходит средствами vga_switcheroo).
 +
 +Будьте аккуратны с UCC: во-первых,​ работает кривовато,​ например,​ иногда необходимо вначале переключиться на дискретную видеокарту,​ а лишь затем на встроенную,​ чтобы обесточить дискретную (либо вначале выполнить
 +
 +<code bash>
 +echo OFF > /​sys/​kernel/​debug/​vgaswitcheroo/​switch
 +</​code>​
 +
 +а затем переключаться на встроенную GPU). Но работает. Во-вторых,​ переключение происходит сразу, то есть без спросу выполняется завершение сеанса и приходится вновь залогиниваться.
 +
 +Больше о переключаемой графике можно почитать в [[https://​help.ubuntu.com/​community/​HybridGraphics|Убунту-вики]],​ в [[http://​asusm51ta-with-linux.blogspot.com/​|этом блоге]] и [[http://​habrahabr.ru/​blogs/​ubuntu/​94032/​|на Хабрахабре]].
  
 ====== Ссылки ====== ====== Ссылки ======