小文件的p2p分布式下载算法优化
来源:互联网 发布:Ubuntu tensorflow gpu 编辑:程序博客网 时间:2024/05/22 04:54
小文件的快速下载,是mp3共享网络、流媒体网络、实时流媒体网络都需要考虑的问题。因此需要专门针对小文件进行下砸优化,以让整个系统的下载速度达到最优。
如果不考虑小文件的同时下载人数的话,小文件的p2p分布式下载一般存在下面几个问题:
一、对等点发现的延时、对等点占有片断信息的延时。
对等点的互相发现一般是相互的,也就是说,如果B发现了A,那么A也就能发现B。所以发现延迟的问题还不大。关键是文件片断信息的延迟,现在许多系统是是基于定时的申请-回应方式。如果是小文件,应当改为主动方式,即A下载完一个片断后,立即告诉B,这样的通知比较及时一些。
二、分块大小过大。
分块大小如果太大,会导致内容共享的延迟;分块过小,可能导致校验数据过多,造成网络传输和CPU运算的浪费。
校验数据的大小,应当小于文件的百分一,才能忽略它的影响。一个hash是16字节,故校验块只要大于1600字节,也就是1k,那么校验数据所产生的网络流量与文件的大小相比,都是微不足道的。当然,我们还要考虑这些数据的储存、计算的方便。为了谨慎起见,对于小文件一般应当将块大小设为16k。那么5M的数据,其校验数据为5k,是一个可以接受的网络流量。假设其平均每通道下载速度为30k,那么客户端每秒钟能下载2块左右,网络也是足够流畅的。
三、上传方堵塞
初始用户的上传通道如果过多,每个用户分的的带宽会非常小,每个用户都迟迟不能下载完一个校验块,相互之间的共享也就无从谈起。
上传方可以同时提供的人数如果过少,那么带宽无法充分利用(自己的带宽和下载者的带宽),所以效率也不是最佳。因此我们也需要建立模型计算,或者做实验来确定,最佳数值是多少。
不考虑网络的其它开销,整个文件传输完成的速度大约是
T = 文件大小 * log(用户数) * 上传通道数 / 带宽 * log(上传通道数)
因此,估计上传通道数在3左右都是恰当的。参看下表:
用户数 N/ln(N)
2 2.885390082
3 2.73071768
4 2.885390082
5 3.106674673
另外需要注意的是:采用了这种算法后,下载者占用了上传方的通道,那么还需要有一种让出通道的机制,否则会造成通道浪费。
如果不考虑小文件的同时下载人数的话,小文件的p2p分布式下载一般存在下面几个问题:
一、对等点发现的延时、对等点占有片断信息的延时。
对等点的互相发现一般是相互的,也就是说,如果B发现了A,那么A也就能发现B。所以发现延迟的问题还不大。关键是文件片断信息的延迟,现在许多系统是是基于定时的申请-回应方式。如果是小文件,应当改为主动方式,即A下载完一个片断后,立即告诉B,这样的通知比较及时一些。
二、分块大小过大。
分块大小如果太大,会导致内容共享的延迟;分块过小,可能导致校验数据过多,造成网络传输和CPU运算的浪费。
校验数据的大小,应当小于文件的百分一,才能忽略它的影响。一个hash是16字节,故校验块只要大于1600字节,也就是1k,那么校验数据所产生的网络流量与文件的大小相比,都是微不足道的。当然,我们还要考虑这些数据的储存、计算的方便。为了谨慎起见,对于小文件一般应当将块大小设为16k。那么5M的数据,其校验数据为5k,是一个可以接受的网络流量。假设其平均每通道下载速度为30k,那么客户端每秒钟能下载2块左右,网络也是足够流畅的。
三、上传方堵塞
初始用户的上传通道如果过多,每个用户分的的带宽会非常小,每个用户都迟迟不能下载完一个校验块,相互之间的共享也就无从谈起。
上传方可以同时提供的人数如果过少,那么带宽无法充分利用(自己的带宽和下载者的带宽),所以效率也不是最佳。因此我们也需要建立模型计算,或者做实验来确定,最佳数值是多少。
不考虑网络的其它开销,整个文件传输完成的速度大约是
T = 文件大小 * log(用户数) * 上传通道数 / 带宽 * log(上传通道数)
因此,估计上传通道数在3左右都是恰当的。参看下表:
用户数 N/ln(N)
2 2.885390082
3 2.73071768
4 2.885390082
5 3.106674673
另外需要注意的是:采用了这种算法后,下载者占用了上传方的通道,那么还需要有一种让出通道的机制,否则会造成通道浪费。
- 小文件的p2p分布式下载算法优化
- 开源的 C++ p2p文件下载软件 shareaza
- 一个小算法的优化
- 无线路由器P2P下载优化设置
- 网络---小文件的下载
- Hadoop小文件的优化
- FAROO:基于P2P的分布式搜索引擎
- 基于小文件的分布式文件存储方案(JDistFS)
- P2P主流分布式哈希算法比较分析
- P2P的负载均衡算法
- 比较常用的算法优化小技巧
- P2P下载
- 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法
- 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法
- 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法
- 下载文件的 小蚂蚁步骤
- iOS小文件的下载方式
- 小文件下载的三种方法
- 如何将 Excel 数据导入 SQL Server
- Verilog与C++的类比
- 一种精确的基于DHT的p2p网络搜索算法与网络拓扑模型
- Runtime.getRuntime().exec()执行本地某一文件
- Jsp标签库--转载
- 小文件的p2p分布式下载算法优化
- 20051124个人日志
- TopCoder 1000Points
- 如何彻底删除Oracle(Windows 2000+ORACLE 8.1.7)
- 国内电子商务的几种典型
- 不使用这个BLOG了...
- 造字
- 福娃系列
- 开始实习了.....