|
1 方便上传
分流人员上传的时候,不是所有的服务器都支持上传续传(append mode),事实上这个上传续传也是很危险的事情,不支持append mode的服务器会自动将上传了一部分但是失败的文件删除,如果不分卷的话,好不容易上了90%,结果失败了,岂不是噩梦;
多点上传,一般家庭的ADSL上传下载速度是不一样的,下载有200k的,上传可能只有50k,多个用户同时上传一个文件的不同卷,是不是比一个人要快一些呢。(我们向服务器上传东西,对应是服务器在从我们这里下载东西,假设服务器是一个普通家用的ADSL,下载200k的话,就可以同时接受4个人满速率上传)
2 方便下载
如果一个文件有一个大文件,但你把这个文件下载完毕以后,发现这个文件效验失败 (CRC failed...),那你只能把这个文件重新下载一遍;可是如果使用了分卷以后,你只会发现第n个卷效验失败,于是你把第n卷重新下载一次就好了。
3 缓解服务器磁盘压力
例如多个用户同时下载某个服务器的一个文件的时候,服务器读线程会针对每一个用户至少开一个读线程;文件读写的效率在大多数非服务器操作系统上与打开文件的大小成反比。开一个线程还不怎么明显,如果你的机器对一个1G的文件开了30个读线程……后果可想而知,严重加速硬盘衰老;对一个小文件开30个线程,由于文件小,一般的优化策略就是把这个文件尽可能多的加载到内存里面,甚至于全部加载到内存里面(这就是为什么服务器一般都是4G的内存的原因),这样对系统而言,其实只开了一个读线程,30个用户其实都在读内存里面的数据呢;对于30个用户读不同的卷,则更是不在话下了,大家随便看看windows的进程,就知道了一个进程开30+文件(小文件)是比较正常的事情。
4...还有一些好处,这里就不说了。 |
|