Tengo un pequeño dispositivo integrado que solo tiene 128 MB de RAM
conectado a este dispositivo hay un disco duro USB2 de 2TB
He estado muy contento con el rendimiento del dispositivo hasta hace poco cuando el número de archivos ha cruzado un umbral de la capacidad del disco ha cruzado un umbral (no estoy seguro de cuál)
En el disco hay muchos archivos pequeños, debido a la naturaleza de la escritura, los archivos de la aplicación están organizados de manera muy equilibrada : ningún directorio de nodo de hoja tiene más de 200 archivos y hay poco más de 800,000 archivos.
Espero obtener una pista sobre algo para investigar. El rendimiento del disco ha disminuido significativamente, el dispositivo estaba funcionando bastante bien y, de repente, el rendimiento cayó como una roca.
Mi suposición es que la estructura organizativa que he elegido en el disco para mis archivos ha dañado de alguna manera la capacidad de los cachés de inodo para mantenerse enérgico.
Como experimento, desmonté el disco (enjuagando cachés, verificado con gratis). Luego, desde un símbolo del sistema, navegué profundamente en la estructura del directorio. En total, este directorio (y sus elementos secundarios) solo tenía unos 3200 archivos contenidos debajo, y en este punto 'libre' mostraba> 117 MB de memoria libre
en este punto, escribí el comando 'buscar' seguido de 'gratis'
'find' mostró alrededor de 3000 archivos, pero el uso de memoria pasó de ~ 117MB a ~ 2MB
Entiendo el equilibrio de la memoria caché frente a la memoria libre, y cómo el kernel considera que una página vacía es una página incorrecta; sin embargo, 115 MB de contenido en caché de un directorio de 3000 archivos apunta a una seria brecha en mi comprensión. Espero que alguien me ayude a entender lo que está sucediendo.
¿Puedo suponer que un árbol equilibrado es el camino a seguir para tener muchos archivos?
fuente