经常会测试海量大数据,在不同文件系统下执行列出(list),删除(rm)等操作的执行时间,下面列出了,执行删除50万个文件时,使用不同的命令或者脚本,执行时间!
从上面可以看出,根据笔者之前用Hadoop,Spark等大数据使用rm命令来删除海量文件,耗时最长,且容量造成Hung机甚至系统崩溃!而使用find命令或者ls命令先列出,再通过管道传给-exec或者-delete来删除无疑是不错的选择,最快的可能就是使用Perl脚本和rsync命令来删除。
无论是海量文件或者是比较大的文件数,如果用rm和rsync做比较的话,比如说5万个文件,使用前者需要500秒,8分钟左右;而使用后者只需要10秒; 速度整整提升了50倍!
rsync --delete-before -avH --force -r /tmp/tmpdir /mnt/yourdir