El rendimiento de una NAS disminuye durante la indexación de archivos pequeños porque los costes fijos de los metadatos y de apertura y cierre predominan antes de que el almacenamiento pueda alcanzar velocidades eficientes de transferencia secuencial.
Un indexador que analiza un terabyte distribuido en unos pocos archivos grandes puede transmitir los datos, pero esos mismos bytes repartidos entre millones de documentos requieren millones de búsquedas. Cada ruta puede activar el recorrido de directorios, comprobaciones de permisos, atributos, aperturas, lecturas diminutas, cierres, cálculos hash y escrituras en el índice. La carga de trabajo queda limitada por las operaciones por segundo y la latencia, en lugar de estarlo únicamente por el ancho de banda.
Cada archivo añade trabajo que no escala con su tamaño
Antes de leer el contenido, el cliente y la NAS resuelven una ruta, inspeccionan los metadatos, aplican los permisos y abren un identificador. Estas operaciones fijas cuestan casi lo mismo para una nota de dos kilobytes que para un vídeo grande, por lo que los bytes útiles por solicitud se desploman a medida que disminuye el tamaño medio de los archivos.
El trabajo de TableFS sobre cargas de trabajo dominadas por los metadatos se diseñó para cargas dominadas por metadatos y archivos diminutos, y demostró que los sistemas de archivos locales convencionales pueden convertirse en un cuello de botella en las operaciones del espacio de nombres incluso cuando el almacenamiento subyacente puede transferir datos mucho más rápido.
Un sistema de archivos de red añade intercambios de protocolo y bloqueos del servidor o validación de caché. El paralelismo puede ocultar parte de la latencia, pero demasiados trabajadores alargan las colas, expulsan metadatos útiles de la caché y hacen que las solicitudes interactivas de la NAS esperen detrás de la enumeración masiva.
Los directorios grandes y el acceso aleatorio rompen la eficiencia secuencial
Millones de entradas amplían los índices de directorio y los conjuntos de trabajo de inodos más allá de la caché. El análisis salta entre bloques de metadatos y extensiones pequeñas, lo que reduce la eficacia de la lectura anticipada y obliga a realizar búsquedas en discos HDD o solicitudes dispersas en SSD, en lugar de transferencias secuenciales largas.
La investigación sobre directorios de archivos escalables examina directorios que contienen de millones a miles de millones de archivos pequeños y distribuye el crecimiento de los metadatos entre particiones. Su diseño demuestra que la escalabilidad del espacio de nombres es un problema independiente del ancho de banda bruto del dispositivo. Esta distinción sigue siendo visible durante las pruebas domésticas posteriores.
La canalización de IA añade otro flujo aleatorio cuando escribe hashes, texto OCR, miniaturas o registros de bases de datos vectoriales. Las colas de lectura y escritura compiten entre sí, y las confirmaciones síncronas de la base de datos pueden pausar la ingesta incluso cuando los discos muestran un rendimiento secuencial máximo sin utilizar.
La rotación de la caché extiende la ralentización a otros usuarios de la NAS
Las entradas de directorio, los atributos, los datos de archivos, las páginas de modelos y los búferes del índice compiten por la RAM. Un análisis amplio puede reemplazar en la caché los archivos domésticos usados con frecuencia, mientras que el antivirus, la generación de miniaturas o el cálculo de sumas de comprobación duplican las lecturas activadas por los mismos eventos de acceso nuevos.
Un análisis de la sobrecarga de los archivos pequeños explica cómo las grandes cantidades de objetos de menos de 64 KB generan una sobrecarga de metadatos y solicitudes que las métricas de rendimiento masivo ocultan. Agrupar el trabajo cambia la proporción entre la carga útil útil y el procesamiento por objeto. El resultado intermedio debe seguir siendo inspeccionable antes de continuar con la automatización.
El límite de fallo consiste en asumir que el rendimiento depende únicamente del número de archivos. Una caché de metadatos de SSD caliente, un archivo comprimido, una base de datos de índices local y un protocolo por lotes pueden gestionar más archivos que un HDD frío mediante SMB de alta latencia. Mide las operaciones y las colas con la estructura real.
Compara los archivos por segundo por separado de los megabytes por segundo
Crea conjuntos de datos con el mismo número total de bytes, pero con archivos medianos de 4 KB, 64 KB, 1 MB y 64 MB, además de directorios poco profundos y profundamente anidados. Registra los archivos por segundo, las operaciones de metadatos, los viajes de ida y vuelta de la red, las IOPS, la latencia de cola, los fallos de caché, las escrituras del índice y la latencia interactiva de la NAS.
Utiliza la separación de cuellos de botella como marco de análisis mientras repites las pruebas con uno, cuatro y dieciséis trabajadores de indexación, y después con el procesamiento por lotes del contenido y la base de datos del índice en otro dispositivo. Mantén explícitos el conjunto de archivos y el estado de la caché.
Elige la concurrencia en el punto en que los archivos por segundo dejan de mejorar o la latencia p95 interactiva supera su límite. Si predominan los metadatos, reduce las operaciones de consulta de atributos repetidas y agrupa el trabajo; si predominan las lecturas de contenido, optimiza la disposición del almacenamiento en lugar de tratar el ancho de banda secuencial como la capacidad que falta.
Centro de Tecnología e IA
Más para leer

¿Cómo proporciona un intermediario secreto credenciales a un agente de IA sin exponerlas en los prompts?
Sigue la identidad de la carga de trabajo, la política, la emisión de tokens, la inyección de solicitudes, la redacción, la caducidad y la...

¿Cómo contiene un entorno aislado de herramientas los efectos secundarios de un agente de IA?
Descubre cómo el aislamiento, los controles de capacidad, el estado desechable, el control de salida, las cuotas y los registros de auditoría limitan los...

¿Cómo produce el decodificado restringido un JSON válido según el esquema?
Comprende la compilación de esquemas, el enmascaramiento de tokens, el estado del analizador sintáctico, los subconjuntos compatibles, la latencia, el truncamiento y por qué...

