Versión corta : rm -rf mydir
con 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 rm
comando 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 btrfs
es 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 mydir
dura aproximadamente 6 horas. Una mejora significativa rm -rf
, pero todavía creo que demasiado. (La explicación de por qué rsync
es 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/sdX
y hdparm -t /dev/sdX
.
[2] Tiempo que se tarda en ejecutarse find mydir -print|wc -l
inmediatamente 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
.
btrfs
porque quería la compresión transparente. Ahora: rsnapshot
usa enlaces duros. No tiene ninguna opción para no usar enlaces duros. Entonces, los enlaces duros se superponen con btrfs
la funcionalidad de copiar y escribir, pero no puedo hacer mucho al respecto.