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
