9. 7. 2016

NAS server 7 - úsporný režim CPU a HDD

Keďže server beží často celý deň, aj keď sa naň nik nepripája, oplatí sa kôli úspore prúdu, hlučnosti chladenia, upraviť nastavenia linuxu. Pozrel som sa na úsporný režim disku a nastavenia ovládačov cez powertop.

DISK

Kým je operačný systém na SSD disku, rozmerné dáta sú na klasickom disku. Ten sa oplatí v prípade servera vypínať. Štandardne sa čas spánku nastavuje cez príkaz "hdparm -S", u mňa pri disku WD nefungoval.
Ako alternatívu som našiel (tu) program hd-idle (http://hd-idle.sourceforge.net/). Nastavenie som uložil do súboru /etc/default/hd-idle.

# start hd-idle automatically?
START_HD_IDLE=true
HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/791e25fe-c96e-4f33-ba63-9edd161f03c2 -i 600"

Štandardne teda nastaví idle 0 (nevypínať) a pre zvolené UUID disku 10minút. Presn


POWERTOP

Tento výborný softvér (https://01.org/powertop) od Intelu zobrazuje aké aplikácie či ovládače zariadení prebúdzajú procesor z úsporných režimov a koľko percent času strávil v akom z nich.
Po spustení cez sudo sa tabulátorom preklikám na záložku "device stats", kde vidím ktoré drivery berú 100 percent. V záložke "tunables" možno zapínať jednotlivé úsporné nastavenia a následne sledovať, či v záložke stats znížia vyťaženosť. Tunables možno hocikedy prepínať, pri prepnutí zobrazí powertop ako prepol parameter vyplnením správneho reťazca do cesty vo virtuálnom proc filesystéme.

Zápisy ktoré mne pomohli som skopíroval do jedného skriptu.

       
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save';
echo 'auto' > '/sys/bus/pci/devices/0000:03:00.0/power/control';
echo '1500' > '/proc/sys/vm/dirty_writeback_centisecs';
echo '0' > '/proc/sys/kernel/nmi_watchdog';

echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host2/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host3/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host4/link_power_management_policy';

echo 'auto' > '/sys/bus/usb/devices/usb1/power/control';
echo 'auto' > '/sys/bus/usb/devices/usb2/power/control';
echo 'auto' > '/sys/bus/usb/devices/usb4/power/control';

echo 'auto' > '/sys/bus/pci/devices/0000:00:1b.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:03.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control';
 

Pozor, toto je závislé od hardvéru. Tento skript ako som zistil okrem iného zníži teplotu SSD disku, preto som ho zaradil do súboru /etc/rc.local. Takto sa spustí pod rootom po každom štarte.

Ostáva ešte vymyslieť a odladiť automatické vypnutie v noci, ak nieje dlhšie nik pripojený.

Žiadne komentáre:

Zverejnenie komentára