Hallo! Ich benutze MCEBuddy seit einigen Jahren. Ich verwende derzeit MCEBuddy Premium 2.6.6.
Ich verwende MCEBuddy, um Quellverzeichnisse (die ich auf der lokalen Festplatte eines PCs mit MCEBuddy pflege) und Zielverzeichnisse (die sich auf einem Dateiserver befinden und über SMB zugänglich sind) synchronisiert zu halten, indem ich die Optionen „Konvertierung überspringen“ und „Verlauf prüfen“ verwende. Die Zielverzeichnisse auf dem Dateiserver werden verwendet, um konvertierte Medien an Clients bereitzustellen. MCEBuddy ist so konfiguriert, dass Dateien aus bestimmten Quellverzeichnissen konvertiert werden, und aus anderen einfach repliziert werden, ohne sie zu konvertieren (mithilfe der Option „Umbenennen ohne Konvertierung“). Die Hauptsache hierbei ist, dass die Quellverzeichnisse niemals geleert werden; Dateien „leben“ die ganze Zeit in den Quellverzeichnissen, und Änderungen werden in die „sichtbaren“ Verzeichnisse auf dem Dateiserver repliziert, wenn sich die Quellverzeichnisse ändern. Ich habe derzeit 9.589 Dateien in den Quellverzeichnissen.
Das alles funktioniert. Mein Problem ist, dass die Scan-Leistung miserabel ist und mit der Zunahme der Dateien immer schlechter wird. Der anfängliche Durchlauf der Verzeichnisbäume und das Erstellen der Dateiliste ist recht schnell, es werden alle Dateien in etwa 22 Sekunden gefunden und bis zu 1.000 Dateien pro Sekunde verarbeitet. (Während dieser Phase sehe ich die Dateien in mcebuddy.log als „xxx wird auf Synchronisierung mit Ausgabedatei überwacht“ aufgeführt.) Die Analyse der Dateien und der Vergleich mit dem, was sich in der Verlaufsdatei befindet, dauert jedoch weitere 49 Minuten und verarbeitet nur 3 bis 4 Dateien pro Sekunde. (Zu diesem Zeitpunkt sehe ich die Dateien in mcebuddy.log als „xxx bereits mit Status Konvertiert konvertiert“ aufgeführt.) Dieser Vorgang scheint hauptsächlich CPU-gebunden zu sein, da MCEBuddy.Service.exe durchschnittlich 24–25 % CPU-Auslastung auf einem 4-Kern-System (offensichtlich kein Biest, mit einem Intel Core i5-7600 @ 3,5 GHz und 16 GB RAM) aufweist. Wenn ich die CPU-Affinität für diesen Prozess auf einen CPU-Kern festlege, verwendet er 100 % dieses Kerns. Natürlich kenne ich die Interna von MCEBuddy nicht, aber ich muss mir vorstellen, dass dieser ganze CPU-Overhead darauf zurückzuführen ist, dass MCEBuddy die Dateien im Quellverzeichnisbaum mit den Einträgen in der Verlaufsdatei vergleicht, die zu diesem Zeitpunkt 7,36 MB groß ist. Ich weiß genug, um zu erkennen, dass eine INI-Datei dieser Größe sehr teuer in der Analyse ist. Also habe ich versucht, die Option „Verlauf prüfen“ in allen meinen Konvertierungsaufgaben zu deaktivieren, in der Annahme, dass MCEBuddy dadurch die Verlaufsdatei ignoriert und nur prüft, ob die Zieldateiname auf dem Server für jeden Quelldateinamen auf dem lokalen Laufwerk existiert. Aber das hat die Leistungseigenschaften überhaupt nicht verändert; es hat dem Scan sogar 12 Sekunden hinzugefügt (obwohl diese Abweichung im Kontext so gering ist, dass die Einstellungsänderung irrelevant sein könnte).
Ich habe Process Monitor verwendet, um zu untersuchen, was vor sich geht, und selbst wenn „Verlauf prüfen“ deaktiviert ist, sehe ich, wie MCEBuddy.Service.exe jede Quelldatei einmal überprüft und buchstäblich Hunderte von Lesevorgängen auf der Verlaufsdatei für jede einzelne durchführt, aber den Dateiserver überhaupt nicht berührt. Ich schätze, es ist sinnvoll, dass es die Verlaufsdatei trotzdem lesen muss, um herauszufinden, was der Zielpfad der Datei ist, aber ich hatte hier eine Verhaltensänderung erwartet. Unabhängig davon scheint dies nicht mein Allheilmittel zu sein.
Können Sie andere Einstellungsänderungen vorschlagen, die die Leistung verbessern könnten, oder stoße ich gerade an die praktischen Grenzen der Architektur von MCEBuddy? Ich stelle mir vor, dass eine solche Nutzung mit einer echten Datenbank (z. B. SQLite) viel besser funktionieren würde, und ich denke, die Verlaufsdatei ist hier der Engpass, aber ich bin offen für Vorschläge.
Ich habe bereits versucht, die Verlaufsdatei neu zu erstellen (Verlauf anzeigen → Verlauf löschen, sicherstellen, dass „C:\\Program Files\\MCEBuddy2x\\config\\history“ nicht mehr vorhanden ist, den MCEBuddy2x-Dienst neu gestartet, die Konvertierung gestartet und zugelassen, dass er sich neu aufbaut). Das hat auch keinen Unterschied gemacht.
Verlauf prüfen aktiviert: 14:18:20 - 15:08:06 = 49m:46s
Verlauf prüfen deaktiviert: 13:09:50 - 13:59:48 = 49m:58s
Danke fürs Lesen!