[vz-users] Aggregation - inzwischen im Master von volkszaehler.organgekommen? Was fehlt mir?

Andreas Goetz cpuidle at gmail.com
Thu Mar 27 15:57:19 CET 2014


Hallo Sirko,

2014-03-27 15:12 GMT+01:00 <mail_ist at nurfuerspam.de>:

> Hi,
>
> auf meinem Raspi dauert die Monatsausgabe mit 5 channels auch ca. 15
> Sekunden, aber nur, wenn das der aktuelle Monat ist, d.h. mit den aktuellen
> Daten von jetzt. Wenn ich dann einfach den Monat vorher nehme (auf <<
> klicke), dann dauert's etwa 4 Sekunden. Bei der Wochenausgabe sind es immer
> ca. 9 Sekunden.
>

Wenn ich mir die Statements und Deinen Text anschaue dann scheint das
Problem dann aufzutreten wenn Du in den Randbereich der "neuen" Daten
kommst. Spannend wäre die Frage ob die Aggregationstabelle mit Daten
gefüllt ist und ob Du für den jeweiligen Zoom die richtigen Daten hast. Bei
Zoom auf Monat brauchst Du bei z.B. 400 Tupeln also 31 Tage x 24h > 400
eine Aggregation auf Stunden, Tage helfen nicht mehr (da 31 Tage < 400).

Prinzipiell trotz aller Datenbankzauberei ist auf dem Raspi
Datensparsamkeit das beste Mittel...

vg
Andreas


> Für mich sind 15 Sekunden auf dem Raspi aber ok ;-)
> Vorher waren es Minuten oder Timeout.
>
> hier die beiden langsamsten Statements bei mir:
>
> ...
>    "debug":  {
>         "level":  "1",
>         "database":  "pdo_mysql",
>         "time":  14.51294,
>         "uptime":  171697790,
>         "load":  [
>             0.73,
>             0.35,
>             0.25
>         ],
>         "commit-hash":  "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
>         "php-version":  "5.4.4-14+deb7u7",
>         "messages":  [
>         ],
>         "queries":  [
> ...
>
> {
>                 "sql":  "SELECT COUNT(1) FROM (SELECT DISTINCT
> YEAR(FROM_UNIXTIME(timestamp\/1000)),
> DAYOFYEAR(FROM_UNIXTIME(timestamp\/1000)),
> HOUR(FROM_UNIXTIME(timestamp\/1000)) FROM data WHERE channel_id = ? AND (
> timestamp >= ? AND timestamp < ? OR timestamp >= ? AND timestamp <= ?)
> UNION SELECT DISTINCT YEAR(FROM_UNIXTIME(timestamp\/1000)),
> DAYOFYEAR(FROM_UNIXTIME(timestamp\/1000)),
> HOUR(FROM_UNIXTIME(timestamp\/1000)) FROM aggregate WHERE channel_id = ?
> AND type = ? AND timestamp >= ? AND timestamp < ?) AS agg",
>                 "params":
> [5,"1393252031493","1393250400000","1395673200000","1395926871726",5,2,"1393250400000","1395673200000"],
>                 "types":  [],
>                 "executionMS":  3.6808500289917
>             },
>             {
>                 "sql":  "SELECT MAX(timestamp) AS timestamp, SUM(value) AS
> value, SUM(count) AS count FROM (SELECT timestamp, value, 1 AS count FROM
> data WHERE channel_id = ? AND ( timestamp >= ? AND timestamp < ? OR
> timestamp >= ? AND timestamp <= ?) UNION SELECT timestamp, value, count
> FROM aggregate WHERE channel_id = ? AND type = ? AND timestamp >= ? AND
> timestamp < ?) AS agg GROUP BY YEAR(FROM_UNIXTIME(timestamp\/1000)),
> DAYOFYEAR(FROM_UNIXTIME(timestamp\/1000)),
> HOUR(FROM_UNIXTIME(timestamp\/1000)) ORDER BY timestamp ASC",
>                 "params":
> [5,"1393252031493","1393250400000","1395673200000","1395926871726",5,2,"1393250400000","1395673200000"],
>                 "types":  [],
>                 "executionMS":  5.0425570011139
>             }
>
> Die anderen sind im ms-Bereich bzw. höchstens 0.3 bzw 0.6 s
>
> Grüße
> Sirko
>
> *Gesendet:* Donnerstag, 27. März 2014 um 09:23 Uhr
> *Von:* "Andreas Goetz" <cpuidle at gmail.com>
> *An:* "volkszaehler.org - users" <volkszaehler-users at demo.volkszaehler.org
> >
> *Betreff:* Re: [vz-users] Aggregation - inzwischen im Master von
> volkszaehler.organgekommen? Was fehlt mir?
>    Hallo Bernd,
>
> 15sec für die Abfrage sind immer noch ziemlich mächtig. Könntest Du das
> relevante JSON bitte mal raussuchen (Debugkonsole im Firefox mit
> Ctrl-Shift-K), mit &debug=1 die URL verlängern, aufrufen und mit den Output
> schicken?
>
> Bei Rainer haben wir im Frontend noch eine kleine Erweiterung eingebaut
> die auch noch Aggregation auf Minuten nutzt- immer dann sinnvoll wenn man
> mehrere Messwerte pro Sekunde hat.
>
> Prinzipiell halte ich für die üblichen Anwendungsfälle 1 Meßpunkt pro
> Minute für geeigneter (=Aggregation im vzlogger oder vzcompress2), wenn es
> Bedarf für Minutenaggregation gibt kann ich diese noch zur Nutzung im FE
> einbauen.
>
> vg
> Andreas
>
>
>
> 2014-03-26 20:34 GMT+01:00 Bernd Gewehr <Bernd at gewehr.net>:
>>
>>   OK, ich glaube, meine Erwartung war falsch: Aggregation läuft super
>> und das Frontend lädt ein Jahr ebenso schnell wie einen Monat, eine Woche
>> oder einen Tag.
>>
>> Dauert nur eben jedesmal so 15 - 20 Sekunden - Pi halt.
>>
>> Also, Andi: Top! Super gemacht - Danke!
>>
>>  Mit den besten Grüßen
>>
>> Bernd Gewehr
>>
>>   *From:* Bernd Gewehr <http://Bernd@gewehr.net>
>> *Sent:* Wednesday, March 26, 2014 8:10 PM
>> *To:* volkszaehler.org - users<http://volkszaehler-users@lists.volkszaehler.org>
>> *Subject:* [vz-users] Aggregation - inzwischen im Master von
>> volkszaehler.organgekommen? Was fehlt mir?
>>
>>    Hallo,
>>
>> kurze Frage:
>>
>> Ich habe ein frisches Git Pull auf den Master gemacht,
>> dann chown -R www-data volkszaehler.org
>> dann composer curl, move, install und update,
>> dann aggregate create und full day / full hour
>> und in der volkszaehler.conf.php aggregation true eingefügt.
>> Dann noch in die Crontab - fertig.
>>
>> Keine Beschleunigung im Frontend.
>>
>> Fehlt noch was oder muss ich in den dev-branch?
>>
>> Mit den besten Grüßen
>>
>> Bernd Gewehr
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20140327/3a6b072a/attachment-0001.html>


More information about the volkszaehler-users mailing list