
Me gustaría calcular o estimar cuánto espacio en disco puede ocupar, digamos, 1000 carpetas vacías o 1000 archivos vacíos en Linux. ¿Puedes darnos una estimación de cuánto espacio en disco se necesita?
Respuesta1
Para empezar, cada carpeta consumirá 1 bloque, más cualquier dato contenido en la entrada del directorio dentro de Linux. El tamaño del bloque variará de un sistema de archivos a otro. Para verificar el tamaño de su bloque, puede ejecutar elcomando blockdev.
Según la documentación de GNU, una entrada de directorio contiene lo siguiente:
char d_name[] Este es el componente de nombre de archivo terminado en nulo. Este es el único campo con el que puede contar en todos los sistemas POSIX.
ino_t d_fileno Este es el número de serie del archivo. Para compatibilidad con BSD, también puede referirse a este miembro como d_ino. En los sistemas GNU/Linux y GNU/Hurd y en la mayoría de los sistemas POSIX, para la mayoría de los archivos, esto es lo mismo que el miembro st_ino que la estadística devolverá para el archivo. Consulte Atributos de archivo.
unsigned char d_namlen Esta es la longitud del nombre del archivo, sin incluir el carácter nulo de terminación. Su tipo es char sin signo porque es el tipo entero del tamaño apropiado. Este miembro es una extensión BSD. El símbolo _DIRENT_HAVE_D_NAMLEN se define si este miembro está disponible.
unsigned char d_type Este es el tipo de archivo, posiblemente desconocido. Para su valor se definen las siguientes constantes:
DT_UNKNOWN El tipo es desconocido. Solo algunos sistemas de archivos tienen soporte completo para devolver el tipo de archivo, otros siempre pueden devolver este valor.
DT_REG Un archivo normal.
DT_DIR Un directorio.
DT_FIFO Una canalización con nombre o FIFO. Consulte Archivos especiales FIFO.
DT_SOCK Un socket de dominio local.
DT_CHR Un dispositivo de caracteres.
DT_BLK Un dispositivo de bloque.
DT_LNK Un enlace simbólico.
Son 3 cadenas de caracteres en total. Su tamaño variará dependiendo de la longitud del nombre.
Además, también hay que considerar el código de permisos, que será aproximadamente otro byte.
Agregue el tamaño de su bloque (el valor predeterminado habitual es 4 KB) y resuma el total.
Si hacemos un SWAG, todo suma 5 KB de datos, lo que elevaría el espacio total consumido a aproximadamente 5000 KB para todo.
Probé esto en mi servidor RHEL y una carpeta vacía aumentó la utilización del disco en 4 kilobytes. Esto representa el espacio reservado por la carpeta y se deriva directamente del tamaño de bloque utilizado en el sistema de archivos. Como uso bloques de 4kb, el sistema de archivos reservó 4kb.
Para probar en su propio servidor:
desde un símbolo del sistema ejecute: df -hk
Tenga en cuenta el valor numérico debajo de la columna "DISPONIBLE".
mkdir "lo que sea"
Ejecute df -hk nuevamente y observe la diferencia.