LINUX.ORG.RU

Борьба с Ваттами

 , ,


3

4

Борюсь с потреблением энергии на своем нетбуке Acer Aspire One D255 которому уже год неактивного использования.
(http://market.yandex.ru/model.xml?modelid=6417547&hid=91013&show-uid=...

openSUSE 12.1, дефолт,яркость на минимум, WiFi включен - 6,5W в состоянии покоя.
Тоже с установленным и настроенным Laptop-mode-tools и отключенными Akonadi и Nepomuk - 5,5W.
(Включение-отключение Akonadi с Nepomuk-ом заметного эффекта не дает).
При init 3 потребляет 6,5W.

Заметил что процессор при простое находится в состоянии С1 и постоянно включен «карлсон», раньше до начала «оптимизации» CPU большую часть времени находился в состоянии С4.
Что не дает уйти процессору в глубокий сон - не знаю.

Задача: снизить потребление до 5W и меньше.

>>> Просмотр (1024x600, 71 Kb)

Что не дает уйти процессору в глубокий сон - не знаю.

Задача: снизить потребление до 5W и меньше.

Задача: узнать.

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

#!/bin/bash

AC_PATH=/sys/class/power_supply/AC0

init_cpufreq() {
	for i in $(seq 0 3); do
		/usr/bin/cpufreq-set -c $i -g $1
	done
}

init_clean() {
	case "$(dd if=/dev/sda2 bs=1 count=6 skip=4086 2>/dev/null)" in
		S1SUSP|S2SUSP|ULSUSP|pmdisk|[zZ]*)
			/sbin/mkswap /dev/sda2 > /dev/null
			;;
	esac
}

init_laptop() {
	echo 60 > /proc/sys/vm/laptop_mode
	echo 60000 > /proc/sys/vm/dirty_expire_centisecs
	echo 30000 > /proc/sys/vm/dirty_writeback_centisecs
	echo 20 > /proc/sys/vm/dirty_ratio
	echo 0 > /proc/sys/vm/dirty_background_ratio
	echo 1 > /proc/sys/vm/highmem_is_dirtyable
	/sbin/blockdev --setfra 16384 /dev/sda
}

init_anyway() {
	init_cpufreq ondemand
	echo 1 > /sys/module/usbcore/parameters/autosuspend
	echo 1 > /sys/module/snd_hda_intel/parameters/power_save
	echo auto | tee /sys/bus/*/devices/*/power/control > /dev/null
	echo min_power | tee /sys/class/scsi_host/host[0-9]/link_power_management_policy > /dev/null
	/usr/sbin/ethtool -s eth0 wol d
}

low_acline() {
	read acline < $AC_PATH/online
	test $acline -eq 1
}

init_bat() {
	echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
	/sbin/hdparm -q -B 144 /dev/sda
	echo 0 > /sys/class/backlight/acpi_video0/brightness
}

init_ac() {
	echo 0 > /sys/devices/system/cpu/sched_smt_power_savings
	/sbin/hdparm -q -B 240 /dev/sda
	echo 5 > /sys/class/backlight/acpi_video0/brightness
}

sleep 1 ;

init_clean ;
init_laptop ;
init_anyway ;

if low_acline ; then
	init_ac ;
else
	init_bat ;
fi

amaora ★★ ()
Ответ на: комментарий от amaora

Попробуй ещё вот так измерять потребление.

#!/bin/bash

usage() {
	echo "Usage: $(basename $0) MODE [OPTIONS] "
	echo "where MODE is one of:"
	echo "  c [tval] [tlim] - capture voltage and current info"
	echo "  w [tval] [tlim] - calculate watts on the fly"
	echo "  i file   [tval] - do an analysis of the file"
	echo "  f [tval] [tlim] - full capture and analysis"
	echo ""
}

BAT_PATH=/sys/class/power_supply/BAT0
BAT_CURRENT=$BAT_PATH/current_now
BAT_VOLTAGE=$BAT_PATH/voltage_now

capture() {
	tval=$1
	let 'tval>0' || tval=1

	tlim=$2
	let 'tval>0' || tlim=0

	let it=0

	while true; do
		sleep $tval
		read bat_vol < $BAT_VOLTAGE
		read bat_cur < $BAT_CURRENT
		echo $bat_vol $bat_cur
		let ++it,it==tlim && exit
	done
}

watts() {
	awk -v tval=$tval '
	{
		v = $1/1000;
		a = $2/1000;
		w = a*v/1000;
		print w " mW";
	}'
}

analysis() {
	tval=$2
	let 'tval>0' || tval=1

	cat $1 | awk -v tval=$tval '
	BEGIN {
		vmin = 999999999;
		vmax = 0;
		as = 0;
		as2 = 0;
		ws = 0;
		ws2 = 0;
		es = 0;
	}
	{
		v = $1/1000;
		a = $2/1000;
		w = a*v/1000;
		if (v < vmin) vmin = v;
		if (v > vmax) vmax = v;
		as += a;
		as2 += a*a;
		ws += w;
		ws2 += w*w;
		es += w * tval;
		++n;
	}
	END {
		print "VOLTAGE: DELTA=" (vmax-vmin) " mV";
		print "CURRENT: M=" as/n " mA [S=" sqrt((as2-as*as/n)/n) "]";
		print "POWER:   M=" ws/n " mW [S=" sqrt((ws2-ws*ws/n)/n) "]";
		print "ENERGY:  INT=" es " mJ";
	}'
}

case "$1" in
	'c')
		capture $2 $3
		;;

	'w')
		capture $2 $3 | watts
		;;

	'i')
		analysis $2 $3
		;;

	'f')
		temp=$(mktemp)
		capture $2 $3 | tee $temp
		analysis $temp $2
		rm $temp
		;;

	*)
		usage
		;;
esac

$ ~/util/batan w
5873.98 mW
5873.98 mW
5653.24 mW
amaora ★★ ()

fluxbox спасет отца русской демократии. выложу кстати свой скрин с нетбука на днях, - там совсем не страшно, скорее наоборот.

Zlo ★★★★ ()

ауууууууу

пробовал кто-то хардварно отрубать винт и грузиться с флешки?

во всех современных ноутах/нетбуках вроде должен быть «boot from flash»

q11q11 ★★★★★ ()

я вот никак не моуг понять - почему все советуют снести кеды?

что на кедах, что на опенбоксе потребление энергии одинаковое

Ingvarr ★★★ ()
Ответ на: комментарий от IvS

> Больше, чем 1W потребления не показывает

Просто нужно дождаться долгосрочного прогноза. Как правило он более адекватен.

SmaL ()

Может на XFCE будет меньшее энергопотребление?

Neoretix ()
Ответ на: комментарий от amaora

Спасибо за скрипты

С cpufreq повоюю. Попробую выяснить причину по которой процессор практически не использует состояние C4 и надеюсь выиграть с этого около 1-го ватта.
Второй скрипт вечером запущу и замерю разницу.

pigmalion ()
Ответ на: комментарий от Zlo

Запускал powertop и под IceWM и под KDE4 никакой разницы. Потребление чуть больше 5W. Вообще без иксов такое же.
В связи с этим смысла менять DE не вижу.
(может кто-то продемонстрирует обратное)

pigmalion ()
Ответ на: комментарий от vyazovoi

Пожалуйста сделайте скриншот с powertop и acpi -i,
а то здесь демонстрировали и 0.9W потребления с предполагаемым временем работы в 60 с лишним часов.
У Вас тоже так долго работает?

pigmalion ()

Установил openSUSE KDE4 на рабочий ноутбук ASUS U5F (Core Duo T2350 1.86 GHz).
Для чистоты систему не обновлял и не настраивал. Wi-Fi включен, яркость 40%:
Wakeup - 52, 99% времени процессор работает на частоте 798 MHz в состояни C3. Потребление - 73.1W!! (скорее всего ошибка в powertop).

pigmalion ()

У тебя в uname ядро с надписью desktop , там случайно таймер прерываний не 1000гц? А вообще , выключи ноут и победа будет достигнута :)

Lennier ★★★★ ()
Ответ на: комментарий от pigmalion

>Потребление - 73.1W!! (скорее всего ошибка в powertop).

Видеокарта может жрёт? :)

Lennier ★★★★ ()
Ответ на: комментарий от vyazovoi

У меня 1.1W на дефолтном Simply Linux

Толсто. 1ватт только один wifi-модуль может потреблять. В нетбуке стоит 570 атом, что никак не вяжется.

acme ()

Power usage (ACPI estimate): 24.3W (1.4 hours) Завидую вам.

a931bw ()
Ответ на: комментарий от acme

>Потому что pf-kernel не заточено под конкретное ноутбучное железо.

Так я и говорю кастомное - я конфиг допиливал под свои нужды в меру своих способностей. Или есть какое-то особое, ноутбучное ядро, о котором я не знаю?

klazutin ()
Ответ на: комментарий от q11q11

>пробовал кто-то хардварно отрубать винт и грузиться с флешки?

Я как-то смотрел на потребление в Live-USB убунты и еще чего-то. Разницы с обычной загрузкой со своего жесткого диска не обнаружил. Но у меня и SSD. Хотя он вроде не сильно меньше жрет, чем обычный HDD, а мой еще и греется как печка.

klazutin ()
Ответ на: комментарий от q11q11

Теоретически - должны больше, но опять же, я большой разницы не увидел.

klazutin ()

>которому уже год неактивного использования

Как пюпитр^W книгоподставка для чтения? Кстати, ватты будут однозначно pwned.

slackwarrior ★★★★★ ()
Ответ на: комментарий от acme

Дело твоё, я тебе просто говорю то, что powertop показал.

vyazovoi ★★★ ()
Ответ на: комментарий от pigmalion

У меня 5 с половиной часов работает - батарейка на 6400mah совсем новая.

vyazovoi ★★★ ()
Ответ на: комментарий от klazutin

Я вел разговор про нетбук, очевидно же, если у меня eee pc. Вам никто не запрещает взять иной набор патчей и сконфигурировать ядро под свое железо.

acme ()
Ответ на: комментарий от acme

- Или есть какое-то особое, ноутбучное ядро, о котором я не знаю? - Таки да, ноутбучное ядро.

Про нетбуки разговор не шел.

klazutin ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.