Rendimiento lento de rm en una partición ext4

Rendimiento lento de rm en una partición ext4

Eliminar lo que me parece una cantidad moderada de archivos lleva mucho tiempo. Por ejemplo:

$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:00:16 [4.55MB/s]
$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:03:16 [ 382kB/s]

La partición está formateada ext4, montada relatime, error=remount-ro. No hay ningún pico de utilización del procesador durante la eliminación de archivos. ¿Alguien tiene alguna idea de lo que podría estar pasando?

Actualizar: La ejecución de los comandos anteriores o rm -rfcomo root funciona como se esperaba... actualizar: Lo averigué. El administrador del sistema de la caja había instalado una cantidad ridícula de reglas de auditoría a nivel mundial en la caja. Quitarlos lo soluciona.

Respuesta1

Cuando reemplaza o elimina un archivo, de manera simplista hace esto:

  1. Encuentre el inodo para el archivo.
  2. Verifique los permisos, el usuario y el grupo del archivo individual.
  3. Elimine también los archivos del directorio si el archivo fuera un directorio (repita del 1 al 4 para cada archivo).
  4. Desvincula el archivo y su inodo.

Obviamente, esto ralentizará mucho el rendimiento, porque es mucho más difícil que simplemente agregar un nuevo inodo y escribir un archivo en el disco. Este es un efecto secundario de ser una lista de tabla de inodos; si fuera un árbol de inodos, podría simplemente eliminar una rama completa. Aunque esto no cambiaría nada al descomprimir, ya que al descomprimir lo hará archivo por archivo independientemente de la forma en que se almacenen los inodos...

Ejecutar como root elimina el paso 2, lo que podría o no ser una gran diferencia.


¿Has intentado volver a montar en ext3 y comparar el tiempo de ejecución?

Porque ext4 se elimina más rápido debido al uso de extensiones. Sería notable si fuera más lento...

información relacionada