[SOLVED] Archivierung von Hand läuft durch, Cronjob bricht ab

Kurzeinführung:

Wir betreiben Piwik für ~400 Projekte. Die Datenbank ist bereits 1.6GB gross. Laut der Empfehlung auf der Seite zur Autoarchivierung, sollte die Archivierung nicht über das Web erfolgen sondern über einen Cronjob.

Diesen habe ich auf einem Dedicated Server (Ubuntu) unter dem Root Account eingerichtet. Die Archivierung über das Interface habe ich ausgeschaltet.


crontab -e


55 5 * * * /home/globotracker/www/piwik/misc/cron/archive.sh > /home/globotracker/archive.log

Die Datei hat die Rechte 755


chmod 755 /home/globotracker/www/piwik/misc/cron/archive.sh

Das Problem:

Wenn ich die archive.sh aus der Shell laufen lasse, läuft diese korrekt durch. Über den Cronjob erhalte ich jedoch den Fehler:


Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate X bytes)

In der archive.log

Was ich bereits versucht habe:

Ich habe den Memory Size zuerst erhöht:


memory_limit = 512M

Danach habe ich das Memory Limit für die CLI sowie in der Webconfig auf -1 (keine Begrenzung) gestellt.


memory_limit = -1

Leider ohne positive Ergebnisse.
Hatte jemand das selbe Problem?

Problem gelöst.

Der Suhosin Patch der bei PHP5 dabei ist hat das memory_limit automatisch auf 128M begrenzt. Egal welcher Wert in der php.ini gesetzt wird. Dieser Blogeintrag über den
http://www.cyberciti.biz/faq/linux-php-fatal-error-allowed-memory-size
Memory_Limit Error und Suhosin hat mir dabei geholfen.

Was ich nicht gesehen hab, auch bei der Archivierung von Hand hat die Konsole Fehler ausgespuckt. Nur ist die Archivierung dann nicht abgebrochen wie beim Cronjob.

Ich habe dazu auch einen Artikel auf meinem PHP Blog
http://www.ileet.ch/blog/view/piwik-php-und-der-memory-limit
veröffentlicht.

Ab wievielen Usern pro Tag macht diese Archivierung eigentlich Sinn?

Ich denke das hängt stark davon ab, wie oft deine Piwik-Umgebung “benutzt” wird.

Die Doku meint:

Wenn du nur gerade zwei oder drei Webseiten trackst und diese zirka 10 Visits pro Tag haben, lohnt sich ein Cronjob kaum.

Piwik archiviert die Daten, in der Standard-Config beim Aufruf des Dashboards.
Du solltest also einen Cronjob einrichten, wenn du ein paar hundert Visits pro Tag hast. Damit die Daten in der GUI schneller angezeigt werden.

Und bei aktuellen 1000 Visits sollte ich dann den Cronjob einrichten.

Richtig.

Hast du denn schon Probleme bei der Anzeige? Kommt ab und zu eine Zeitüberschreitung beim Aufruf des Dashboards?

Bisher noch nicht. Die Visits verteilen sich auch über mehrere Seiten.