同步百万级别以上文件的做法
最近在一个场景下,要同步6百多万个文件,电脑挂机同步了半个月。经过这次实践,实际上、发现根本不需要花那么长时间。
首先先说下文件的构成:
大约1GB的文件大约占0.1%
小于1GB的文件占大约20%
大部分99%文件小于1MB
2、小文件,小文件由于无法最大占用带宽,并且单次传输量并不多,平均最大1秒7个。加上文件一致性检查等,小文件花费的时间远远大于大文件同步所需要的时间。
所以建议,所有的小文件可以先通过linux 的命令 find 然后tar 到一个文件里,进行传输。最大地利用带宽。
无奈,我已经同步了14天了,已经不缺这一天了。写这篇文章,也算是警戒下自己多思考,思考!寻找解决问题的最简便方法。
大概的类似于命令:
nohup find ./svn -size -1024 |xargs tar -zcf ./svn.tar.gz &
1024是1kb以下的文件。当然上面地做法有些抱歉,除了没有好的带宽或者适当地云服务器之外可以这么做。
评论
发表评论