Hej! Jeg har brugt MCEBuddy i et par år. Jeg bruger i øjeblikket MCEBuddy Premium 2.6.6.
Jeg bruger MCEBuddy til at holde sæt af kildedirectorier (som jeg vedligeholder på den lokale HDD på en pc, der kører MCEBuddy) og destinationsdirectorier (som er på en filserver og tilgås via SMB) synkroniseret ved hjælp af indstillingerne “Skip reconversion” (Spring genkonvertering over) og “Check history” (Tjek historik). Destinationsdirectoriene på filserveren bruges til at levere konverteret medie til klienter. MCEBuddy er konfigureret til at konvertere filer fra bestemte kildedirectorier og blot replikere filer fra andre uden at konvertere (ved hjælp af indstillingen “Rename without converting” (Omdøb uden at konvertere)). Hovedpointen her er, at kildedirectoriene aldrig tømmes; filer “lever” i kildedirectoriene hele tiden, og ændringer replikeres til de “synlige” directorier på filserveren, efterhånden som kildedirectoriene ændres. Jeg har i øjeblikket 9.589 filer i kildedirectoriene.
Alt dette virker. Mit problem er, at scanningsydelsen er elendig og bliver værre, efterhånden som jeg tilføjer filer. Den indledende gennemgang af bibliotristrukturerne og opbygningen af fillisten er ret hurtig, idet alle filer findes på cirka 22 sekunder og behandler op til 1.000 filer i sekundet. (Under dette trin ser jeg filerne opregnet i mcebuddy.log som “xxx is being monitored for syncing with output file” (xxx overvåges til synkronisering med outputfil).) Parsingen af filer og sammenligning med det, der er i historikfilen, fortsætter dog i yderligere 49 minutter og behandler kun 3 til 4 filer i sekundet. (På dette tidspunkt ser jeg filerne opregnet i mcebuddy.log som “xxx already converted with status Converted” (xxx allerede konverteret med status Konverteret).) Denne proces ser ud til primært at være CPU-bundet, da MCEBuddy.Service.exe i gennemsnit bruger 24-25% CPU-belastning på et 4-kerners system (åbenlyst ikke et bæst, med en Intel Core i5-7600 @ 3,5 GHz og 16 GB RAM). Hvis jeg tildeler CPU-tilknytning til 1 CPU-kerne for den pågældende proces, bruger den 100% af den kerne. Selvfølgelig kender jeg ikke MCEBuddy’s interne funktioner, men jeg er nødt til at forestille mig, at al denne CPU-overhead er MCEBuddy, der sammenligner filerne i kildedirectoriets træ med posterne i historikfilen, som er 7,36 MB på dette tidspunkt. Jeg ved nok til at indse, at en INI-fil af denne størrelse er meget dyr at parse. Så jeg prøvede at deaktivere indstillingen “Check history” (Tjek historik) i alle mine konverteringsopgaver og tænkte, at det ville få MCEBuddy til at ignorere historikfilen og blot kontrollere for eksistensen af destinationsfilnavnet på serveren for hvert kildefilnavn på det lokale drev. Men det ændrede slet ikke på ydelseskarakteristikaene; det tilføjede faktisk 12 sekunder til scanningen (selvom den afvigelse er så lille i sammenhæng, at indstillingsændringen kan være irrelevant).
Jeg har brugt Process Monitor til at undersøge, hvad der foregår, og selv med “Check history” (Tjek historik) deaktiveret, ser jeg MCEBuddy.Service.exe kontrollere hver kildefil én gang og udføre bogstaveligt talt hundredvis af læsninger på historikfilen for hver enkelt, men slet ikke røre ved filserveren. Jeg gætter på, at det giver mening, hvorfor den skal læse historikfilen uanset for at finde ud af, hvad destinationsfilstien er, men jeg forventede en eller anden ændring i adfærd her. Uanset hvad, ser dette ikke ud til at være min sølvkugle.
Kan du foreslå andre indstillingsændringer, der kan forbedre ydeevnen, eller er jeg bare ved at presse de praktiske grænser for MCEBuddy’s arkitektur? Jeg ville forestille mig, at denne type brugsscenarie ville fungere meget bedre med en rigtig database (f.eks. SQLite), og jeg tror, at historikfilen er flaskehalsen her, men jeg er åben for forslag.
Jeg har allerede forsøgt at genskabe historikfilen (Show history (Vis historik) → Clear history (Ryd historik), sørget for, at “C:\Program Files\MCEBuddy2x\config\history” er væk, genstartet MCEBuddy2x-tjenesten, startet konvertering og tilladt den at genopbygge). Det gjorde heller ingen forskel.
Tjek historik aktiveret: 14:18:20 - 15:08:06 = 49m:46s
Tjek historik deaktiveret: 13:09:50 - 13:59:48 = 49m:58s
Tak for at læse!