Version courte : rm -rf mydir
avec mydir
(récursive) contenant des fichiers de 2,5 millions, prend environ 12 heures sur une machine la plupart du temps de repos.
Plus d'informations : La plupart des fichiers supprimés sont des liens durs vers des fichiers dans d'autres répertoires (le répertoire supprimé est en fait la plus ancienne sauvegarde effectuée par rsnapshot
; la rm
commande est en fait fournie par rsnapshot
). Il s'agit donc principalement d'entrées de répertoire supprimées - le contenu du fichier lui-même n'est pas beaucoup; c'est de l'ordre de quelques dizaines de Go.
Je suis loin d'être certain que btrfs
c'est le coupable. Je me souviens que la sauvegarde était également très lente avant de commencer à utiliser btrfs
, mais je ne suis pas certain que la lenteur était dans la suppression.
La machine est un Intel Core i5 2,67 GHz avec 4 Go de RAM. Il a deux disques SATA: l'un a le système d'exploitation et d'autres éléments, et le disque de sauvegarde est de 1 To WDC WD1002FAEX-00Z3A0
. La carte mère est un Asus P7P55D.
Edit : La machine est un Debian Wheezy avec Linux 3.16.3-2~bpo70+1
. Voici comment le système de fichiers est monté:
root@thames:~# mount|grep rsnapshot
/dev/sdb1 on /var/backups/rsnapshot type btrfs (rw,relatime,compress=zlib,space_cache)
Edit : l'utilisation rsync -a --delete /some/empty/dir mydir
prend environ 6 heures. Une amélioration significative par rapport à rm -rf
, mais toujours trop je pense. ( Explication de pourquoi rsync
est plus rapide querm
: "[M] ost les systèmes de fichiers stockent leurs structures de répertoires dans un format btree, l'ordre [dans] lequel vous supprimez les fichiers est ... important. Il faut éviter de rééquilibrer le btree lorsque vous effectuez la déconnexion .... rsync -a --delete
... fait les suppressions dans l'ordre ")
Edit : j'ai attaché un autre disque qui avait 2,2 millions de fichiers (récursivement) dans un répertoire, mais sur XFS. Voici quelques résultats comparatifs:
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] Avec hdparm -T /dev/sdX
et hdparm -t /dev/sdX
.
[2] Temps nécessaire à l'exécution find mydir -print|wc -l
immédiatement après le démarrage.
[3] Sur le disque XFS, c'était peu de temps après avoir parcouru l'arbre avec find
. Sur le disque BTRFS, c'est l'ancienne mesure (et je ne pense pas que c'était avec l'arborescence mise en cache).
Cela semble être un problème avec btrfs
.
btrfs
? C'est possible, bien sûr, mais pensez-vous que cela peut être pertinent? Pour l'instant, je ne me souviens pas pourquoi j'ai décidé d'essayer btrfs
.
btrfs
parce que je voulais la compression transparente. Maintenant: rsnapshot
utilise des liens durs. Il n'a aucune option pour ne pas utiliser de liens durs. Les liens physiques se chevauchent donc avec btrfs
la fonctionnalité de copie sur écriture de, mais je ne peux pas faire grand-chose à ce sujet.