[vz-users] Volkszaehler Performance Verbesserungen - z.B. für RaspberryPi

Andreas Goetz cpuidle at gmail.com
Sun Dec 15 12:10:28 CET 2013


Hallo Heike & Sollner11,

erstmal vielen Dank dass Ihr Euch als Tester zur Verfügung stellt!
Vielleicht sollte Heiko es zuerst versuchen ;)

> Hallo Zusammen,
>
> ...
> Daher meine Frage und Bitte: wer das Thema spannend findet und die
> Entwicklungen testen möchte sollte sich hier melden.
> Die Entwicklungen stehen unter
> https://github.com/andig/volkszaehler.org/tree/dev bereit. Wenn Interesse
> besteht gebe ich einen kurzen Einführungskurs.
>
> Also:

Der Performanceboost beruht auf 3 Bausteinen: 1) einer neuen "aggregate"
Tabelle welche Zusammenfassungen der Daten enthält 2) Anpassungen der MW
die einige SQL-Abfragen durch Nutzung der neuen Tabelle optimieren und 3)
einem Frontend das Anfragen so umformuliert dass die MW sie durch Nutzung
der aggregate Tabelle nochmals schneller ausführen kann.

1. Die bestehend Datenbank wird nicht angepasst, es geht also nichts kaputt!
2. Alle Logger etc könne weiter laufen wie gehabt, keine Einschränkungen
3. Ihr könnt die bestehende Installation durch den dev Tree überschreiben
oder selektiv nur die Middleware reinkopieren. Macht keinen großen
Unterschied, dev ist auf dem Stand von master.

4. Allerdings müssen die Abhängigkeiten installiert werden. Dev baut auf
https://github.com/volkszaehler/volkszaehler.org/pull/58 auf, d.h. es wird
Composer benötigt. Diesen Schritt sollte man einmal üben bevor man die
Installation macht damit nicht plötzlich das System steht und die Logger
ins Leere laufen:

4a. Get composer (http://getcomposer.org/)
4b. Run "composer install"
4c. danach sollte die neue (oder alte) MW wieder erreichbar sein:
http://.../middleware.php/capabilities.json
zeigt obs geklappt hat.

5. Jetzt muss die neue Tabelle eingerichtet werden:
5a. $config['aggregation']=true; in der etc/volkszaehler.conf.php eintragen
5b. Tabelle anlegen 'php misc/tools/aggregate.php create'
5c. Tabelle befüllen 'php misc/tools/aggregate.php -m full -l day
aggregate' und 'php misc/tools/aggregate.php -m full -l hour aggregate'
sollten dafür genügen. Auf einem kleinen Raspi kann dieser Schritt eine
Weile dauern. Danach könnt Ihr testen-> das Frontend sollte jetzt "rennen"!

6. Die aggregate Tabelle dauerhaft auf einem aktuellen Stand halten. Dafür
hat das Skript einen "Delta" Modus der deutlich performanter ist. Dazu
richtet man unter Linux mittels 'crontab -e' einen Cron Job ein. Die
Tägliche ('day') Aggregation sollte nach Mitternacht laufen, die stündliche
('hour') immer nach der vollen Stunde:

0 3 * * * /usr/bin/php volkszaehler.org/misc/tools/aggregate.php -m delta
-l day run
15 * * * * /usr/bin/php volkszaehler.org/misc/tools/aggregate.php -m delta
-l hour run

Das Ganze ist übrigens so implementiert, dass die MW auch dann funktioniert
wenn in der agrgegate Tabelle keine Daten stehen, aber dann halt wieder so
langsam wie vorher. Wenn ihr das testen wollt die Tabelle einfach mit 'php
misc/tools/aggregate.php clear' löschen.

Jetzt bin ich auf die ersten Ergebnisse gespannt, wie gesagt bei Schritt 4
bitt aufpassen bzw. in einer separaten Installationen zunächst testen!!!!

vg
Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20131215/1c6d913c/attachment.html>


More information about the volkszaehler-users mailing list