Hola! He estado usando MCEBuddy durante algunos años. Actualmente estoy usando MCEBuddy Premium 2.6.6.
Utilizo MCEBuddy para mantener sincronizados conjuntos de directorios de origen (que mantengo en el disco duro local de una PC que ejecuta MCEBuddy) y directorios de destino (que están en un servidor de archivos y se accede a ellos a través de SMB), utilizando las opciones “Omitir reconversión” y “Comprobar historial”. Los directorios de destino en el servidor de archivos se utilizan para servir medios convertidos a los clientes. MCEBuddy está configurado para convertir archivos de ciertos directorios de origen y simplemente replicar archivos de otros sin convertir (usando la opción “Renombrar sin convertir”). La idea principal aquí es que los directorios de origen nunca se vacían; los archivos “viven” en los directorios de origen todo el tiempo, y los cambios se replican en los directorios “visibles” en el servidor de archivos a medida que cambian los directorios de origen. Actualmente tengo 9,589 archivos en los directorios de origen.
Todo esto funciona. Mi problema es que el rendimiento del escaneo es pésimo y empeora a medida que agrego archivos. El recorrido inicial de los árboles de directorios y la construcción de la lista de archivos es bastante rápido, encontrando todos los archivos en unos 22 segundos y procesando hasta 1,000 archivos por segundo. (Durante esta etapa, veo los archivos enumerados en mcebuddy.log como “xxx está siendo monitoreado para sincronización con el archivo de salida”). Sin embargo, el análisis de archivos y la comparación con lo que hay en el archivo de historial continúan durante otros 49 minutos, procesando solo de 3 a 4 archivos por segundo. (En este punto, veo los archivos enumerados en mcebuddy.log como “xxx ya convertido con estado Convertido”). Este proceso parece estar limitado principalmente por la CPU, ya que MCEBuddy.Service.exe promedia un uso de CPU del 24-25% en un sistema de 4 núcleos (obviamente no es una bestia, con un Intel Core i5-7600 a 3.5 GHz y 16 GB de RAM). Si asigno afinidad de CPU a 1 núcleo de CPU para ese proceso, utiliza el 100% de ese núcleo. Por supuesto, no conozco los internos de MCEBuddy, pero tengo que imaginar que toda esta sobrecarga de CPU es MCEBuddy comparando los archivos en el árbol de directorios de origen con los registros en el archivo de historial, que tiene 7.36 MB en este momento. Sé lo suficiente como para darme cuenta de que un archivo INI de este tamaño es muy costoso de analizar. Así que intenté deshabilitar la opción “Comprobar historial” en todas mis tareas de conversión, pensando que eso haría que MCEBuddy ignorara el archivo de historial y solo verificara la existencia del nombre del archivo de destino en el servidor para cada nombre de archivo de origen en la unidad local. Pero no cambió las características de rendimiento en absoluto; de hecho, agregó 12 segundos al escaneo (aunque esa desviación es tan menor en contexto que el cambio de configuración podría ser irrelevante).
He usado Process Monitor para examinar lo que está sucediendo, e incluso con “Comprobar historial” deshabilitado, veo que MCEBuddy.Service.exe verifica cada archivo de origen una vez y realiza literalmente cientos de lecturas en el archivo de historial por cada uno, pero sin tocar el servidor de archivos en absoluto. Supongo que tiene sentido por qué necesitaría leer el archivo de historial de todos modos para averiguar cuál es la ruta del archivo de destino, pero esperaba algún cambio en el comportamiento aquí. Independientemente, esto no parece ser mi panacea.
¿Puede sugerir algún otro cambio de configuración que pueda mejorar el rendimiento, o estoy simplemente superando los límites prácticos de la arquitectura de MCEBuddy? Me imagino que este tipo de caso de uso funcionaría mucho mejor con una base de datos real (por ejemplo, SQLite) y creo que el archivo de historial es el cuello de botella aquí, pero estoy abierto a sugerencias.
Ya intenté recrear el archivo de historial (Mostrar historial → Borrar historial, me aseguré de que “C:\\Program Files\\MCEBuddy2x\\config\\history” haya desaparecido, reinicié el servicio MCEBuddy2x, comencé la conversión y permití que se reconstruyera). Eso tampoco marcó ninguna diferencia.
Comprobar historial habilitado: 14:18:20 - 15:08:06 = 49m:46s
Comprobar historial deshabilitado: 13:09:50 - 13:59:48 = 49m:58s
¡Gracias por leer!