Een onmisbare tool om een Low Impact server (milieu vriendelijke server met een lag stroomverbruiik) te optimaliseren is door een tool te geburiken zoals PowerTop.

Dit is een Linux programma ontwikkeld door Intel dat een schat van informatie biedt over hoe het zit met de conditie van je server of laptop.

Wie OpenSuSE gebruikt kan powertop terug vinden in de Software Repository.
Powertop is een command line tool dat optioneel met een aantal argumenten kan worden opgestart:

~ # powertop --help
Usage: powertop [OPTION...]
  -d, --dump            read wakeups once and print list of top offenders
  -t, --time=DOUBLE     default time to gather data in seconds
  -p, --pids            show pids in wakeups list
  -h, --help            Show this help message
  -v, --version         Show version information and exit

Het programma moet als root worden opgestart, anders zijn er onvoldoende privileges om de controles uit te voeren. Het programma werd ontwikkeld door Intel.
Wie het stroomverbruik van zijn computer of laptop zo laag mogelijk wil houden met er op letten dat de computer zo weinig mogelijk taken moet uitvoeren.
Voor een server is dit gemakkelijker gezegd dan gedaan, want meestal is deze server wel altijd met iets bezig.

Wat kunnen we met powertop controleren en hoe verlagen we dan het stroomverbruik van de computer?

Een zeer belangrijke indicator is de frequentie van de Intel processor. Hoe minder de processor moet doen hoe trager die kan werken wat vervolgens resulteert in een lager verbruik.
In de screenshot aan het begin van dit artikel kun je zien dat de processor 4 verschillende frequenties heeft: 600Mhz, 1000MHz, 1200Mhz, 1400MHz en 1.60Ghz (= 1600Mhz).
Ongeveer 9% van de tijd draait de processor op 1.6 GHz en 91% van de tijd op 600Mhz.
We kunnen dus ervoor zorgen dat de computer minder stroom verbruikt als de processor zo veel mogelijk op 600Mhz draait.

Een 2de belangrijke parameter is het aantal wakeups-from-idle. Dit moet zo laag mogelijk zijn. Het aantal wakeups is in de screenshot ongeveer 54.
Het aantal wakeups kan verlaagd worden door zoveel mogelijk onnodige processor te stoppen.
Ik zou bijvoorbeeld ervoor kunnen zorgen dat de MySQL en Apache server maar gedurende bepaalde perioden werkt.

Onderstaande screenshot toont aan de de processor reeds aanzienlijk meer aan 600Mhz draait als apache en MySQL zijn uitgeschakeld:

Powertop heeft ook suggesties om het stroomverbruik nog te verlagen.

Vb.: echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

Deze parameter zorgt ervoor de de harddisk minder wordt aangesproken.

Moderne Linux kernels hebben ook een laptop mode: echo 5 > /proc/sys/vm/laptop_mode

Deze parameter zorgt ervoor dat er langer gebufferd wordt waardoor ook de disk activiteit verminderd.

Voor meer details over deze suggesties en waarom die beter kunnen aangepast worden: http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption

Wie een laptop gebruikt en ervoor wil zorgen dat de batterij zo lang mogelijk meegaat, heeft er dus voordeel bij om met powertop een controle uit te voeren.
Wie een kleine server draaiende heeft (zoals mijn Low Impact Server), wil dus op regelmatige basis deze controle uitvoeren en bij voorkeur zelfs automatiseren.
Dat is ook wat ik heb gedaan. In combinatie met Perl, MRTG, MySQL en apache heb ik een kleine web interface waarmee het mogelijk is een historisch overzicht te maken van hoe de server draait.
Hier ziet U bijvoorbeeld de grafieken waarbij de processor aan 1.6GHz werkt of aan 600Mhz.:

Dit is de grafiek met de Wakeups:

Deze grafieken zijn van het afgelopen uur, maar met MRTG kun je grafieken aanmaken die tot een jaar ver gaan.

Wie eventueel geïnteresseerd is over hoe dit technisch in elkaar zit, mag mij steeds een bericht sturen.
Als er voldoende belangstelling is, zal ik dit artikel verder uitwerken en de source code beschikbaar maken.

MRTG is uitermate geschikt om grafieken te maken van bijvoorbeeld netwerk treffiek, CPU load, aantal processen, MySQL stats, ...