[Ge]: Metada

Started by Frank_11, October 10, 2016, 09:00:42 PM

Previous topic - Next topic

Frank_11

Hallo,

leider muss ich nocheinmal mitteilen, dass das Schreiben von Metadaten sehr lange dauert!

- ca 230 Files
- Dauer ca. 17min
- NAS ["aktuell"]
- GigaBit Lan

Würde mich freuen über eine Unterstützung.

VG,

Frank

Richard Knobloch

Hallo Frank_11,

ich arbeite zwar erst seit kurzem mit iMatch und habe damit an der einen oder anderen Stelle durchaus Probleme - wahrscheinlich Verständnisprobleme und/oder Schwierigkeiten, dass offensichtlich einige Daten in meinen Files kaputt sind :-(

Aber zum Thema "Schreiben" kann ich Dir vielleicht helfen, da ich mich beruflich mit Speichersystemen beschäftige. Zu Unterscheiden ist auch, ob die XMP-Daten geschrieben werden oder die Metdaten in den Datein aktualisiert werden sollen. Leztzteres dauert ziemlich lange, da ja von vorneherein nicht klar ist, ob die aktualisierten Daten auch in den vorhandenen Platz passen. Also wird das Tool die gesamte Datei lesen, die Metadaten nehmen, verändern, wieder in die Daten integrieren und dann wieder zurückschreiben. Ein GB-Ethernet kann zwar theoretisch 100MB pro Sekunde übertragen und das macht es auch, wenn der Rechner die Daten so schnell anliefern kann und der Speicher die Daten so schnell aufnehmen kann.
Einfache Speichersysteme, wie z.B. eine Qnap sind zwar relativ preiswert (kommt drauf an, ob man aus der Privatmann-Brille schaut oder aus der Firmenbrille...), haben aber durchaus ihre Tücken, vor Allem beim Schreiben. Meist sind das RAID-5 oder RAID-6 Systeme, die zwar schnell lesen können, aber durch die Paritätsberechnung beim Schreiben durchaus bis auf rund 1/4 der Leseperformance einbrechen können. Zudem sind die in der Regel mit S-ATA Platten ausgestattet, die nicht so schnell sind. Professionelle Systeme haben diese Probleme beim Schreiben auch, aber durch intelligente Ausstattung mit Cache, SSDs und/oder Tiereing-Maßnahmen und Konfigurationen seitens des Herstellers oder des Technikers kann dieses Problem minimiert werden.
Zudem ist immer zu betrachten, was parallel gegen ein Speichersystem sonst noch so läuft. Durch Virtuzalisierungstechniken für Server kann man sich schnell auch Probleme beim Speicher einhandeln.

Schau mal im Windows Ressourcenmonitor nach, was Du für Latenzzeiten (Antwortzeiten) ´beim Schreiben auf Deinen Speicher hast. Das ist die Zeit, die das Speichersystem für einen I/O braucht, um ihn positiv für das Betriebssystem zu beantworten.
Latenzzeiten bis hin zu 20-30ms sind "normal", alles darüber ist nicht so gut. Ein I/O ist in der Regel zwischen 4 und 32kB groß. Vorausgesetzt, dass eine Datei z.B. 3,2MB groß ist, bedeutet das, wenn ein I/O 32 kB groß ist, dass 100 I/Os zum Speicher geschrieben werden. Wenn jeder I/O 100ms benötigt, was ja schon ein schlechter Wert ist, dauert das Schreiben von dieser Datei 10sek. Je kleiner ein I/O wird, um so längert dauert das Lesen oder Schreiben.
Wenn ich mal Deine 230 Dateien nehme und mit den oben angenommenen Daten berechne bin ich bei 38 Minuten für 736MB..

Anders ausgedrückt: Ich glaube nicht, dass Mario da an der Stelle etwas optimieren kann.
Ggfs. helfen ein paar SSDs, die inzwischen gar nicht mehr so teuer sind, lokal eingebaut in den Rechner mit iMatch. wenn die Daten für andere auch Verfügbar sein sollen, würde ich eine Freigabe auf dem Arbetsplatzrechner machen und den als NAS misbrauchen. Hängt aber natürlich auch davon ab, ob die Maschine genug CPU-Power hat, damit das Arbeiten auf dem Rechner nicht unnötig beeinträchtigt wird.

Richard

Mario

Bitte verwende [German] um Posts in deutscher Sprache zu kennzeichnen. Das hat sich so eingebürgert.

Bei Fragen zur Performance, hilft es uns, wenn Du ein Logfile anhängst. IMatch schreibt immer eine Protokolldatei, die Du über Hilfe > Support ansehen kannst. Wenn Du auf den Debug-Modus umschaltest, schreibt IMatch viele Details in die Logdatei, zum Beispiel, wie lange ExifTool zum Schreiben von Daten gebraucht hat.

Was passiert beim Schreiben von Metadaten?

IMatch instruiert ExifTool, was zu tun ist. ExifTool ließt die zu schreibende Datei in den Speicher, analysiert sie, stellt fest, was und wo etwas zu schreiben ist und schreibt dann die Datei neu, mit den entsprechenden Änderungen. Falls die Datei zum ersten Mal geschrieben wird, oder nicht mehr genügend "space" in den Metadatensätzen vorhanden ist, wird die Datei dabei aufgesplittet, Metadaten werden an den richtigen Stellen eingefügt und dann wird die Datei wieder geschrieben, Das ist ein sehr aufwändiger Prozess.

ExifTool ist total auf Sicherheit programmiert (gut) und arbeitet auf "stream" basis. Es schreibt also nicht nur hier und da ein paar Bytes in die Zieldatei, sondern sieht und bearbeitet immer die ganze Datei.

Nach dem Schreiben der Daten ließt IMatch die Datei wieder ein, um alle geänderten Metadaten in die Datenbank zu übernehmen. Das Schreiben nur eines Datums kann durch die Synchronisierung über alle Metadatenformate (XMP/EXIF/IPTC/GPS usw.) viele andere Felder verändern.

Du arbeitest mit einem NAS. Über ein Netzwerk, Das ist der worst-case (langsamster anzunehmender Fall). Das Lesen und Schreiben von Daten über ein Netzwerk auf ein NAS ist 10-1000 mal langsamer als auf eine lokale Festplatte.

Es kommt natürlich auch darauf an, wie groß die Dateien sind. Ein 5 MB JPEG ist viel schneller gelesen und geschrieben als eine 50 MB RAW- oder eine 500 MB PSD-Datei.

Ohne Logfile (im Debug-Modus) kann ich keine Details nennen. Einfach zippen und an einen Post anhängen. Debug-Modus dann wieder über Hilfe > Support ausschalten.

17 Minuten für 200 Dateien scheint mir aber seeehr langsam zu sein. Entweder sind Deine Dateien riesig oder dein NAS / Netz ist langsam.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Frank_11

Hallo Mario,

anbei die Log Datei.

es handelt sich um CR2 Dateien.

Aktuell waren es 157 Datei deren Metadaten geschrieben wurden. Dauer ca. 6min.

Danke!

Frank

Mario

ExifTool hat 157 Dateien in 433 Sekunden geschrieben, also ca. 2.7 Sekunden pro Datei. Auf ein NAS, über ein Netzwerk.
Das Einlesen dauert auch ca. 2 Sekunden pro Datei.
Da IMatch beim Lesen immer mehrere Dateien auf einmal prozessiert, wird Dein NAS/Netzwerk dadurch wohl saturiert und ausgelastet.

Mach mal ein Write-back for die gleiche Anzahl Dateien auf Deiner schnellsten lokalen Platte und such dann im LogFile nach PTMetabase::WriteBack completed.  Dann kennst Du die schnellstmögliche Zeit, ohne NAS und Netzwerk-Overheard.

PS.: Die Datenbank ist auf Laufwerk G:. Wenn das nicht Deine schnellste Platte ist, solltest Du die Datenbank auf C: verschieben. He schneller die Platte mit der Datenbank, desto schneller ist IMatch insgesamt.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook