Versión corta : rm -rf mydircon mydir(recursivamente) que contiene 2.5 millones de archivos, toma alrededor de 12 horas en una máquina en su mayoría inactiva.
Más información : La mayoría de los archivos que se eliminan son enlaces duros a archivos en otros directorios (el directorio que se está eliminando es en realidad la copia de seguridad más antigua realizada rsnapshot; el rmcomando en realidad está dado por rsnapshot). Por lo tanto, se eliminan principalmente las entradas de directorio: el contenido del archivo en sí no es mucho; está en el orden de algunas decenas de GB.
Estoy lejos de estar seguro de que ese btrfses el culpable. Recuerdo que la copia de seguridad también era muy lenta antes de comenzar a usarla btrfs, pero no estoy seguro de que la lentitud estuviera en la eliminación.
La máquina es un Intel Core i5 2.67 GHz con 4 GB de RAM. Tiene dos discos SATA: uno tiene el sistema operativo y algunas otras cosas, y el disco de respaldo es de 1 TB WDC WD1002FAEX-00Z3A0. La placa base es una Asus P7P55D.
Editar : La máquina es un debian wheezy con Linux 3.16.3-2~bpo70+1. Así es como se monta el sistema de archivos:
root@thames:~# mount|grep rsnapshot
/dev/sdb1 on /var/backups/rsnapshot type btrfs (rw,relatime,compress=zlib,space_cache)
Editar : El uso rsync -a --delete /some/empty/dir mydirdura aproximadamente 6 horas. Una mejora significativa rm -rf, pero todavía creo que demasiado. (La explicación de por qué rsynces más rápido querm : "[M] ost filesystems almacena sus estructuras de directorio en un formato btree, el orden [en] en el que elimina los archivos es ... importante. Es necesario evitar reequilibrar el btree cuando realiza el desvinculación .... rsync -a --delete... borra en orden ")
Editar : adjunté otro disco que tenía 2,2 millones de archivos (recursivamente) en un directorio, pero en XFS. Aquí hay algunos resultados comparativos:
On the XFS disk On the BTRFS disk
Cached reads[1] 10 GB/s 10 GB/s
Buffered reads[1] 80 MB/s 115 MB/s
Walk tree[2] 11 minutes 43 minutes
rm -rf mydir[3] 7 minutes 12 hours
[1] Con hdparm -T /dev/sdXy hdparm -t /dev/sdX.
[2] Tiempo que se tarda en ejecutarse find mydir -print|wc -linmediatamente después del arranque.
[3] En el disco XFS, esto fue poco después de recorrer el árbol con find. En el disco BTRFS es la medida anterior (y no creo que fuera con el árbol en caché).
Parece ser un problema con btrfs.
btrfs? Esto es posible, por supuesto, pero ¿crees que puede ser relevante? En este momento no recuerdo por qué decidí intentarlo btrfs.
btrfsporque quería la compresión transparente. Ahora: rsnapshotusa enlaces duros. No tiene ninguna opción para no usar enlaces duros. Entonces, los enlaces duros se superponen con btrfsla funcionalidad de copiar y escribir, pero no puedo hacer mucho al respecto.