¿Por qué es lento eliminar archivos en Ubuntu?

¿Por qué es lento eliminar archivos en Ubuntu?

Leí en una publicación de stackoveflow que en Linux, cuando eliminamos un archivo, en realidad no se elimina, solo se elimina el enlace de la tabla de inodos a ese archivo. Si ese es el caso, ¿por qué la eliminación no es una operación de tiempo constante?

También probé un experimento: creé una carpeta con 1500 imágenes y creé un objeto tar de estas imágenes. Tanto el directorio como el archivo tar son del mismo tamaño. Los tiempos para eliminar el objeto tar y el directorio de 1500 imágenes son los siguientes

Eliminando el archivo tar time rm test.tar:


real    0m0.024s
user    0m0.001s
sys     0m0.024s

Eliminando directorio:time rm -r test


real    0m0.219s
user    0m0.024s
sys     0m0.191s

Según tengo entendido, esta diferencia de tiempo se debe a
desvincular 1 archivo frente a desvincular 1500 archivos. ¿Pero no debería ser 1500 veces más rápida la eliminación del objeto tar?

Respuesta1

Porque esnouna operación simple de "marcar un único inodo eliminado":https://www.slashroot.in/how-does-file-deletion-work-linux

Al menos en las particiones ext4, la eliminación de archivos es mucho más rápida que en las particiones ext2/ext3 debido al uso de extensiones.

En el caso de los SSD, la eliminación de archivos podría ser más lenta de lo necesario debido al uso de la opción "descartar", que le indica a su SSD que descarte físicamente todos los bloques que pertenecen a un archivo para extender la vida útil de su SSD. es altamentenorecomendable desactivarlo.

información relacionada