ZoneMinder: Datenbank und Events Speicherverbrauch reduzieren

ZoneMinder kann bei längerer Laufzeit ohne Optimierungen sehr große Datenmengen in der MySQL-Datenbank, Event-Speiche und im Dateisystem erzeugen. Ohne geeignete Aufbewahrungs- und Bereinigungsstrategien kann dies zu starkem Speicherverbrauch und Performance-Einbußen führen. Die nachfolgenden Konfigurationsmaßnahmen zielen darauf ab, das Datenvolumen planbar zu begrenzen, ohne die Kernfunktionen (Motion Detection, Recording, Event Review) funktional einzuschränken.


Zielsetzung

  • Begrenzung der Event-Retention
  • Reduktion der Tabellenwachstumsrate (insbesondere Frames)
  • Stabilisierung der Datenbankgröße
  • Minimierung manueller Wartungsmaßnahmen

Bei konsistenter Konfiguration sind typischerweise folgende Größen erreichbar:

  • Event-Retention: 7–30 Tage
  • Frames-Tabelle: < 500.000 Datensätze
  • frames.ibd (InnoDB): ca. 300–500 MB
  • Wachstumsrate: nur noch geringer, linearer Zuwachs von Datenbank und Event-Storage

1. Automatische Löschung alter Events einrichten

Entfernt automatisch Events, die älter als ein definierter Zeitraum sind. Das ist die effektivste Maßnahme gegen unbegrenztes Wachstum von Datenbank und Speicherplatz.

– Filter → Neuer Filter
– Bedingung: StartTime < 7 Tage (oder 14/30 Tage)
– Aktion: Delete (inkl. aller zugehörigen Dateien und DB-Einträge)
– Automatische Ausführung aktivieren (PurgeWhenFull oder regelmäßig)

2. Anzahl der Frames in der Datenbank stark reduzieren

Durch BULK_FRAME_INTERVAL wird bei kontinuierlicher Aufnahme nur jeder n-te Frame in die Frames-Tabelle geschrieben. Dadurch sinkt die Anzahl der Datenbankzeilen um 95–99 %.

– Optionen → Konfig.
– BULK_FRAME_INTERVAL auf 200–500 setzen (empfohlen: 200)
→ Nur jeder n-te Frame wird bei kontinuierlicher Aufnahme in die Frames-Tabelle geschrieben

3. Speicherung von Einzelbildern (JPEGs) minimieren

Deaktiviert oder beschränkt die Erzeugung von JPEG-Dateien pro Frame. Das spart massiv Speicherplatz im Events-Verzeichnis und reduziert indirekt Datenbank-Einträge.

– Pro Monitor oder global (Optionen → Storage):
– Save JPEGs → Disabled oder Alarm Frames Only
– Image Store → Frames Only oder komplett deaktiviert

4. Event-Statistiken deaktivieren

Verhindert das Schreiben detaillierter Frame-Statistiken in die Stats-Tabelle. Bei den meisten Installationen unnötig und verursacht oft unnötiges Wachstum auf mehrere GB.

– Optionen → Logging
– RECORD_EVENT_STATS → No
→ Verhindert Wachstum der Stats-Tabelle

5. Audit-Daemon ressourcenschonend konfigurieren

Der Audit-Daemon räumt verwaiste Einträge (Orphans) auf. Ein zu kurzes Intervall belastet CPU und IO unnötig – ein längeres Intervall reicht bei normalem Betrieb aus.

– Optionen → System
– ZM_RUN_AUDIT → Yes
– ZM_AUDIT_CHECK_INTERVAL → 21600 (6 Stunden) oder 86400 (24 Stunden)

6. Nach Konfigurationsänderungen und Purge Platz freigeben

Die genannten Befehle stoppen temporär ZoneMinder, räumen Reste auf, optimieren die Tabellen und geben den physischen Speicherplatz im Dateisystem wirklich frei.

7. Regelmäßige Überprüfung der Entwicklung

Die angegebenen Kommandos zeigen die aktuelle Anzahl von Events und Frames sowie die reale Dateigröße der wichtigsten Tabellen. So lässt sich der Erfolg der Maßnahmen überprüfen.


CC_BY_NC_SAby Speefak

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top