Hi Andi...


    http://vz/middleware.php/capabilities/database.json

    liefert mir:

    
{"version":"0.3","capabilities":{"database":{"data_rows":6420892,"data_size":592134144,"aggregation_enabled":1,"aggregation_rows":58082,"aggregation_ratio":110.549}}}

    ... also ist das doch offenbar richtig aktiviert


Erstmal sind Daten drin. Ob die für die Kanäle drin sind die bei Dir "langsam" sind sieht man daran nicht.

|select *, from_unixtime(timestamp/1000) from aggregate order by channel_id, 
timestamp


|

Untitled zeigt mir, dass für *alle* channels stündlich ein Wert vorhanden ist. Zudem gibts je einen Tageswert (type=3 nehme ich an).

    Jedenfalls steht in volkszaehler.conf.php was von "administration
    credentials" - ich gehe mal davon aus, dass ich für den user root
    mein login-PW eintrage.


Ganz sicher nicht?! Da kommt ein DB-User mit CREATE/DROP Privilegien rein falls Dein normaler DB-User die nicht hat.
Hm, ich hab den Standarduser nicht geändert, also lass ich das default-PW drin, ok. Diese Geschichte ist mir auch erst gestern ganz spät nachts aufgefallen, da hab ich aggregate-Tabelle schon längst erzeugt. Habs gerade nochmal getestet, hast recht: mit meinem root-shell-PW gibts nen "access denied for user root..." Fehler. Klappt jetzt wieder:

pi@BauratPi ~ $ php /var/www/volkszaehler.org/misc/tools/aggregate.php -m full -l day -l hour run
Performing 'full' aggregation on 'day' level.
Updated 3999 rows.
Performing 'full' aggregation on 'hour' level.
Updated 83685 rows.


    Die Timezone ("Europe/Berlin") ist rauskommentiert - soll das so sein?


Eher nicht.
Ok, also Kommmentare raus. Done.



    Tja und dann kommt also noch als letzte Zeile
    $config['aggregation']=true;
    mit rein. Speichern, aber selbst nach reboot kann ich keine
    Beschleunigung erkennen.


Reboot ist nicht nötig. Woran machst Du "keine Beschleunigung" das fest? Bestimmte Abfrage? Nutzung des Frontends?
Ja, Nutzung des Frontends. Bei mir dauert nach wie vor eine Tagesabfrage ca. 10 Sekunden, für einen Monat ca. 80 Sekunden, da hat sich gar nichts geändert (Zeitangaben bei Ansicht mit allen 19 Channels).


    Die aggregate-Tabellen wurden erzeugt und sind befüllt, hat bei
    500MB data doch ganz schön gedauert.


Macht nix. Für Deltabefüllung gibts ja dann den entsprechenden Modus womit's auch fix geht.
Klar, kein Thema. Nur hab ich mich jetzt auf Schmidts Katze gefreut, aber die mag nicht ;)


    Woran könnte es liegen, dass die Performanceoptimierungen bei mir
    nicht greifen?


S.o.
...hmmmm.... leider wohl eher nicht. Menno, ich will aber die Katze rennen sehen... wie kann ich dem Fehler auf die Schliche kommen?

Bin jetzt echt am Grübeln - vielleicht läuft die Optimierung ja doch schon? hmmm... ahhh.. moment, ich schau einfach mal ins mysql.log. Tatsächlich: da wird fleissig auf die aggregate-Tabelle zugegriffen:
140109 20:37:15 70465 Connect   vz@localhost on volkszaehler
70465 Query SELECT e0_.id AS id0, e0_.uuid AS uuid1, e0_.type AS type2, p1_.id AS id3, p1_.pkey AS pkey4, p1_.value AS value5, e0_.class AS class6, p1_.entity_id AS entity_id7 FROM entities e0_ LEFT JOIN properties p1_ ON e0_.id = p1_.entity_id WHERE (e0_.uuid = '9a7ed6c0-f2dc-11e2-b13e-b9abb50897a8') AND e0_.class IN ('channel', 'aggregator') ORDER BY p1_.pkey ASC 70465 Query SELECT MIN(timestamp) FROM (SELECT timestamp FROM data WHERE channel_id='15' AND timestamp<'1389209549459' ORDER BY timestamp DESC LIMIT 2) t 70465 Query SELECT MAX(timestamp) FROM (SELECT timestamp FROM data WHERE channel_id='15' AND timestamp>'1389295949459' ORDER BY timestamp ASC LIMIT 2) t 70465 Query SELECT aggregate.type, COUNT(aggregate.id) AS count FROM aggregate INNER JOIN entities ON aggregate.channel_id = entities.id WHERE uuid = '9a7ed6c0-f2dc-11e2-b13e-b9abb50897a8' GROUP BY type HAVING count > 0 ORDER BY type DESC 70465 Query SELECT UNIX_TIMESTAMP(FROM_UNIXTIME(MIN(timestamp) / 1000, "%Y-%m-%d")) * 1000 FROM aggregate WHERE channel_id='15' AND type='3' AND timestamp>='1388227905662' 70465 Query SELECT UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%d"), INTERVAL 1 day)) * 1000 FROM aggregate WHERE channel_id='15' AND type='3' AND timestamp<'1389296017384' 70465 Query SELECT SUM(count) FROM (SELECT COUNT(1) AS count FROM data WHERE channel_id = '15' AND ( timestamp >= '1388227905662' AND timestamp < '1388185200000' OR timestamp >= '1388271600000' AND timestamp <= '1389296017384') UNION SELECT SUM(count) AS count FROM aggregate WHERE channel_id = '15' AND type = '3' AND timestamp >= '1388185200000' AND timestamp < '1388271600000') AS agg


...also alles richtig und muss damit leben, dass Schmidts Katze bei mir nicht mag...?

Danke...!
LG Heiko


    Am 27.12.2013 18:22, schrieb Andreas Goetz:
    2013/12/27 W3ll Schmidt <w3llschm...@gmail.com
    <mailto:w3llschm...@gmail.com>>

        Super Arbeit, läuft aum Raspi wie 'Schmidts Katze' !!!


    Das hört man doch gerne ;) Hat sich die Arbeit gelohnt :))




Reply via email to