ショートバージョン:rm -rf mydir、とmydir(再帰的に)、250万ファイルを格納しているが、ほとんどアイドル状態のマシンに約12時間かかります。
詳細情報:削除されるファイルのほとんどは、他のディレクトリ内のファイルへのハードリンクです(削除されるディレクトリは、実際にはによって作成された最も古いバックアップrsnapshotです。rmコマンドは実際にはによって提供されますrsnapshot)。つまり、ほとんどの場合、削除されるのはディレクトリエントリです。ファイルの内容自体はそれほど多くありません。数十GB程度です。
私はそれbtrfsが犯人であることは確かではありません。使用を開始する前のバックアップも非常に遅いことを思い出しましたがbtrfs、削除の速度が遅いことはわかりません。
マシンはIntel Core i5 2.67 GHz、4 GB RAMです。これには2つのSATAディスクがあり、1つはOSとその他のものがあり、バックアップディスクは1 TB WDC WD1002FAEX-00Z3A0です。マザーボードはAsus P7P55Dです。
編集:マシンはLinuxを搭載したDebian wheezy 3.16.3-2~bpo70+1です。これはファイルシステムがマウントされる方法です:
root@thames:~# mount|grep rsnapshot
/dev/sdb1 on /var/backups/rsnapshot type btrfs (rw,relatime,compress=zlib,space_cache)
編集:使用にrsync -a --delete /some/empty/dir mydirは約6時間かかります。を大幅に改善しましたrm -rfが、まだ多すぎると思います。(理由の説明rsyncrm:より速い:「ほとんどのファイルシステムはディレクトリ構造をbtree形式で保存します。ファイルを削除する順番[in]は重要です...リンク解除を実行するとき、btreeの再バランスを避ける必要があります.... rsync -a --delete...削除を順番に実行します ")
編集:ディレクトリに(再帰的に)220万個のファイルがある別のディスクを接続しましたが、XFS上にありました。ここにいくつかの比較結果があります:
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] hdparm -T /dev/sdXとhdparm -t /dev/sdX。
[2] find mydir -print|wc -lブート直後の実行にかかった時間。
[3] XFSディスクでは、これはでツリーを歩いた直後findです。BTRFSディスクでは、これは古い測定値です(そして、ツリーがキャッシュされていたとは思いません)。
に問題があるようbtrfsです。
btrfsますか?もちろんこれは可能ですが、関連があると思いますか?なぜ今やったのか思い出せませんbtrfs。
btrfs透過的な圧縮が必要だったので、切り替えることにしました。現在:rsnapshotハードリンクを使用しています。ハードリンクを使用しないオプションはありません。したがって、ハードリンクはbtrfsのコピーオンライト機能と重複しますが、それについてはあまり行えません。