0
Borrar muchos archivos

Open 4 Respuestas 1 Views
Tengo un filesystem ext4 con muchos archivos.

Organizados en unos 10 directorios, cada uno con 256, cada uno con 16, cada uno con algunos o muchos archivos adentro.

Ya sea borrado selectivo o casi total el tiempo es ridiculamente alto. Supongo que es mucho tiempo de acceso porque con SSD mejora mucho. Estaría bueno forzar buffering, desactivar sync o algo asi (aunque sea inseguro).

El borrado nunca es TOTAL asi que mkfs no es opción.

¿Ideas?

4 Respuestas

0
Y monitoreaste cuanto iops consumís ? porque si el cuello de botella es el IO no hay forma de mejorarlo.
respondido por edux (10,670 puntos) Jun 15
1Comentarios
comentado por Alfrenovsky (120 puntos) Jun 15
No es mucho I/O.

Un SDD gurada/lee entre 5 y 20 veces más rapido que un HDD, y en este caso la diferencia es del orden de cientos de veces. Por lo que veo el problema es el seek de los discos fisicos. Por eso pregunto si es posible forzar el buffering de las Allocation tables y los directorios.

Ahora le estoy dando otra oportunidad a XFS. Voy a medir a ver como compara con ext4. (Por otros detalles de la implementación ZFS no es opción)
0
Con que criterio deberias borrar? Los archivos se modifican con regularidad o son mas bien estáticos?
respondido por Francisco Jun 15
1Comentarios
comentado por Alfrenovsky (120 puntos) Jun 15
Es un cache, borro archivos viejos. El criterio es borrar los archivos que hace más tiempo no se usan, ni para lectura, ni para escritura. Cada lectura le agrega tiempo de vida adicional.

Antes de empezar a borrar ya tengo un indice de todos los archivos existentes en orden de prioridad y borro los de menor prioridad hasta llegar al free ratio que quiero.
0
Si los archivos que quedan sin borrar son pocos, moverlos a otra ubicación y cepillar (mkfs) la original podría ser una opción.

Mido, luego existo.
respondido por Babblo Jun 16
0
Me parece que el problema viene en COMO los estas borrando.
Si lo que haces es verficiar en la metadata los archivos que cumplan con ciertos criterios de fecha, ahi es donde esta el problema casi seguro.
Cual es el comando/s, script, oneliner o metodo usas para borralos?
respondido por qlixed (9,840 puntos) Jun 16
...