Portál AbcLinuxu, 30. dubna 2025 14:46
Pokud používáte notebook či nějaké jiné mobilní zařízení s Linuxem, možná jste si všimli (ať už z doslechu nebo na vlastní kůži), že má váš Linux v porovnání s majoritním systémem poměrně velkou spotřebu energie. Rozdíl je mnohdy až 50%. Naštěstí, v současné době už systém poskytuje velké množství prostředků, kterými se dá spotřeba značně snížit a to až na úroveň onoho majoritního operačního systému.
Předpokladem pro snižování spotřeby je co nejnovější distribuce (obsahuje čerstvé jádro) a dobře podporovaný hardware. Příklad -- instalace o rok novější distribuce na stejný stroj snížíla spotřebu o téměr 10 %.
Pomocí několika voleb vložených buď do startovacího skriptu (obvykle /etc/rc.d/boot.local
) nebo do nastavení grafického správce napájení, můžete dosáhnout významných úspor energie za cenu jen malého snížení výkonu. Následující příklad platí pro openSUSE 11.1, měl by však fungovat na většině nových distribucí. Nastavení bylo vytvořeno za velké pomoci webu LessWatts.org, který se spotřebou na Linuxu zabývá.
# bude se jinym zpusobem pracovat s vicejadrovymi systemy echo 1 > /sys/devices/system/cpu/sched_mc_power_savings # plati pouze pro Intel Wireless WiFi Link 4965 ANG; nastavuje spravu napajeni na nizkou uroven echo 5 > /sys/bus/pci/drivers/iwlagn/0000\:03\:00.0/power_level # zvysuje interval probouzeni disku kvuli zapsani novych dat echo 48000 > /proc/sys/vm/dirty_writeback_centisecs echo 90 > /proc/sys/vm/dirty_ratio echo 1 > /proc/sys/vm/dirty_background_ratio echo 5 > /proc/sys/vm/laptop_mode # vypina podporu Wake On LAN na eth0 ethtool -s eth0 wol d # nastavuje usporu energie na SATA radici echo min_power > /sys/class/scsi_host/host0/link_power_management_policy echo min_power > /sys/class/scsi_host/host1/link_power_management_policy # nastavuje usporu energie rozhrani PCI Express echo powersave > /sys/module/pcie_aspm/parameters/policy # interval roztaceni disku zkracuje na 120 sekund, nastavuje intenzivni setreni energie hdparm -B32 -S24 /dev/sda > /dev/null # nastavuje usporu energie zvukove karty (plati pro Intel HDA) echo 10 > /sys/module/snd_hda_intel/parameters/power_save # prodluzuje interval zapisovani zurnalu na disk (upravte dle sveho diskoveho rozvrzeni) mount -o remount,commit=480 / mount -o remount,commit=480 /home # povoli uspavani USB zarizeni v nejvyssi mozne mire echo 10 > /sys/bus/usb/devices/usb1/power/autosuspend echo 10 > /sys/bus/usb/devices/usb2/power/autosuspend
Mnoho voleb závisí na použitém HW vašeho počítače a datu vydání jádra, které vaše distribuce používá. Například úspora energie SATA řadiče se objevila v Linuxu teprve nedávno. Mimo výše uvedeného je často možné nastavit i jiné části distribuce -- například X.Org či některé grafické programy.
Protože je jednotné nastavení při spuštění počítače poměrně omezující jelikož snižujeme zbytečně výkon počítače když to není nutné, je možné za pomoci daemona acpid
(v desktopových distribucích je ve výchozím stavu nainstalován) tuto nevýhodu odstranit. Ten automaticky vyvolá akci pokud se přihodí nějaká událost -- v našem případě je odpojen nebo připojen napájecí adaptér. Vytvoříme si tedy popis události spolu s cestou ke skriptu, který se má následně spustit:
# cat /etc/acpi/events/ac_adapter event=ac_adapter/* action=/usr/lib/acpid/ac_adapter "%e"
Dalším krokem je vytvoření tzv. handleru pro tuto událost:
# cat /usr/lib/acpid/ac_adapter #!/bin/bash HOTKEY=$1 set $HOTKEY EVENT=$1 # "ibm/hotkey" ACPI=$2 # "HOTK" WHAT=$3 # "00000080" SERIAL=$4 # "0000100c" Fn+F12 # unplug power adapter if [ "$WHAT" = "00000080" -a "$SERIAL" = "00000000" ]; then echo 5 > /sys/bus/pci/drivers/iwlagn/0000\:03\:00.0/power_level echo min_power > /sys/class/scsi_host/host0/link_power_management_policy echo min_power > /sys/class/scsi_host/host1/link_power_management_policy hdparm -B32 -S24 /dev/sda > /dev/null fi # plug power adapter if [ "$WHAT" = "00000080" -a "$SERIAL" = "00000001" ]; then echo 1 > /sys/bus/pci/drivers/iwlagn/0000\:03\:00.0/power_level echo max_performance > /sys/class/scsi_host/host0/link_power_management_policy echo max_performance > /sys/class/scsi_host/host1/link_power_management_policy hdparm -B254 -S0 /dev/sda > /dev/null fi
Tento skript (nezapomenout nastavit právo spuštění!) při odpojení napájení automaticky zapne parkování disku a nastaví úsporný režim sběrnice SATA a WiFi. Při opětovném nastavení jsou změny vráceny zpět na maximální výkon. Opět je třeba myslet na specifika vašeho počítače a pokud máte třeba jinou WiFi kartu, provést nastavení výkonu odlišným způsobem. Kódy dalších událostí lze snadno zjistit pomoci nástroje acpi_listen
, který zobrazuje události tak, jak je systém ACPI registruje.
Pro měření spotřeby před a po úpravě systému lze použít program PowerTOP (web, distribuční rada na konci článku) od společnosti Intel. Tato aplikace taktéž ukazuje, které programy jsou nejvíce aktivní a spotřebovávají systémové prostředky. Pomůže vám tedy například najít původce častého probouzení procesoru ze stavu hlubokého spánku. PowerTOP funguje i na procesorech jiných výrobců, jen nezobrazuje některé podrobnosti.
Pokud se vám i po aplikaci výše uvedených voleb zdá spotřeba vašeho systému příliš vysoká, zkuste si na internetu vyhledat články o spolupráci vašeho počítače s Linuxem.
Dokument vytvořil: Jan Grmela, 25.12.2008 17:58 | Poslední úprava: Jan Grmela, 12.3.2011 11:49 | Další přispěvatelé: Jirka Keresteš, Jan Grmela | Historie změn | Zobrazeno: 5364×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.