[vz-users] Volkszaehler Performance Verbesserungen - z.B. für RaspberryPi
Marius Hellmann
vz at hellmann.me
Tue Dec 17 23:54:33 CET 2013
Hallo zusammen,
Hab das ganze auf meinem Ubuntu Server auch mal getestet...
Installiert habe ich das ganze nach Anleitung mit dem Unterschied das ich so wie Daniel einen weiteren Ordner im /var/www angelegt habe. Erstellung und befüllung der agg tabelle lief problemlos durch. Jedoch bekomme ich beim aufrufen des Frontend über
http://ip/volkszaehler.dev/htdocs/frontend/?uuid=dba28560-d32a-11e2-xxxx-13e61d1d1e40
Folgenden 500er Fehler
../middleware.php/data.json?from=1387233079299&to=1387319479299&tuples=321&uuid%5B%5D=8f014080-d32a-xxxx-9906-71ef06644f78&uuid%5B%5D=98fd8320-3c95-xxxx-9188-6f3fc2f3d3ab&uuid%5B%5D=7d1e04e0-3c95-xxxx-b538-91b12b96616e&uuid%5B%5D=48e0cf00-004e-xxxx-8126-6b039ee442f6&uuid%5B%5D=a3b8b4e0-d35e-xxxx-a350-d95a07304d69&uuid%5B%5D=67a218d0-3c95-xxxx-96fa-39d3fec1b520:
Unknown middleware response
Rufe ich das frontend ohne uuid auf ist noch alles gut wähle ich jedoch einen öffentlichen Kanal aus und abonniere diesen bekomme ich folgenden 404er Fehler
undefined/data.json?padding=jQuery19106278418963775039_1387320289889&from=1387233890664&to=1387320290664&tuples=310&uuid%5B%5D=8f014080-d32a-xxxx-9906-71ef06644f78&uuid%5B%5D=98fd8320-3c95-xxxx-9188-6f3fc2f3d3ab&uuid%5B%5D=7d1e04e0-3c95-xxxx-b538-91b12b96616e&uuid%5B%5D=48e0cf00-004e-xxxx-8126-6b039ee442f6&uuid%5B%5D=a3b8b4e0-d35e-xxxx-a350-d95a07304d69&uuid%5B%5D=67a218d0-3c95-xxxx-96fa-39d3fec1b520&_=1387320289891:
Unknown middleware response
404 Not Found Not Found The requested URL /volkszaehler.dev/htdocs/frontend/undefined/data.json was not found on this server. Apache/2.2.22 (Ubuntu) Server at 192.168.178.37 Port 80
Klar... Weil undefined gibts ja auch nicht aber wie kommt das frontend hier auf undefined und nicht wie erwartet auf middleware.php?
Kanäle aus der Demo middleware lassen sich ohne Probleme abonnieren...
Das alte frontend/middleware läuft ohne Veränderung und verrichtet brav seine Arbeit...
Mit freundlichen Grüßen
Marius Hellmann
Von meinem iPad gesendet
Am 15.12.2013 um 12:10 schrieb Andreas Goetz <cpuidle at gmail.com>:
> 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/20131217/2eb3dfaf/attachment.html>
More information about the volkszaehler-users
mailing list