Cuello de botella que ejecuta scripts por lotes en una unidad asignada de red


0

Así que he estado tratando de ejecutar un script que realiza una variedad de operaciones en archivos de video de tamaño mediano en una unidad de red asignada en Windows 10.

La unidad de red es una carpeta compartida en un ReadyNAS 104. El script se está ejecutando en mi máquina local. Las operaciones que realiza generalmente son el cambio de nombre de archivo, la conversión de formato a través de ffmpeg y la lectura / escritura de encabezado / pie de página.

El problema que he tenido es que el script por lotes apenas usa un 5% de CPU y una red de ~ 150kBps (edición: miró de nuevo y parece que está más cerca de 120kB / s hacia arriba y hacia abajo en todo momento). Hay muchos archivos para ejecutar, por lo que significa que está tardando mucho tiempo. Mi estimación es de unas pocas semanas para terminarlo todo. Esto es frustrante dado que los dos dispositivos están en una LAN juntos y la computadora tiene 8 núcleos en los que puede trabajar.

Intenté cambiar la prioridad de los procesos involucrados (parece no tener efecto entre Normal y Alto). También he intentado ejecutar algo así como 30 instancias del script en subcarpetas y la utilización solo aumenta un poco cuando se ejecutan varias instancias de ffmpeg cuando un archivo necesita conversión (todavía nunca supera el 30% de utilización).

Había escuchado que podría haber un problema con la autenticación de SMB que ralentizaba las cosas y, según la sugerencia de este hilo, probé una modificación del registro para solucionarlo (sin efecto).

Puedo entender que la unidad de red asignada sea un cuello de botella para este proceso (y de hecho, veo una tasa de transferencia constante, baja y de 150 kbps en una conexión desde el proceso del sistema a la dirección de red NAS), pero no esperaba tal mala utilización de la red cuando he podido transferir archivos individuales a través de la misma unidad a más de 16 mBps o más.

¿Alguna sugerencia sobre cosas que puedo intentar para acelerar el proceso? El script no es mío, y se ha estado ejecutando durante aproximadamente 5 días, así que dudo en hacer cualquier cosa que requiera que lo reinicie a menos que sea una buena ventaja, pero estoy abierto a cualquier sugerencia en general, ya que puedo ejecutar Este proceso nuevamente en el futuro.

¡Gracias!

Edición 2: revisé esta noche después de que se ejecutó aproximadamente medio día con alta prioridad. Ahora, de repente, está usando una CPU bastante razonable de 2.5 mBps y 35%. Todavía bajo pero no tan increíblemente bajo. ¡Realmente no estoy seguro de qué hacer con este comportamiento! Podría ser más rápido copiar archivos del NAS y luego volverlos a encender en lugar de usar unidades de red mapeadas (aunque me encantaría saber por qué).


Los comandos y las opciones ffmpeg utilizados pueden ser útiles.
Yorik

Sí, he mirado la opción 'hilos', pero eso no explica por qué el resto del script que no está relacionado con ffmpeg también es lento. Es como si todas las operaciones de las
pequeñas

Todavía podría ser útil. Tampoco mencionas si intentaste ejecutarlo, por ejemplo, en un archivo local.
Yorik

¡Oh sí, esa es información importante! Lo probé en archivos locales y funcionó mucho más rápido. También usó una porción de CPU mucho más grande (50% o más con solo un script en ejecución). La parte ffmpeg todavía era un poco lenta para mi gusto, pero no tenía un uso de CPU extrañamente bajo.
user986122

Respuestas:


0

Respondiendo mi propia pregunta porque me di cuenta de que soy un idiota. Instalé un nuevo disco duro en el NAS justo antes de comenzar este proceso. Es de 4 TB y tardó MUCHO tiempo en sincronizarse con mi RAID-X. La sincronización terminó hoy y ahora estoy sentado en mis expectativas correctas de ancho de banda y CPU. Aparentemente, cuando ese proceso está en curso, todo el NAS se ralentiza severamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.