大文件传输... nc很牛啊
来源:互联网 发布:ug6铣螺纹编程实例 编辑:程序博客网 时间:2024/05/11 01:41
from: http://www.yankay.com/linux%E5%A4%A7%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93/
复制文件
- 压缩数据
- 发送到另外一台机器上
- 数据解压缩
- 校验正确性
使用ZIP+SCP
gzip -c /home/yankay/data | ssh yankay01 "gunzip -c - > /home/yankay/data"
这条命令是将/home/yankay/data经过GZIP压缩,通过ssh传输到yankay01的机器上。
scp -C -c blowfish /home/yankay/data yankay01:/home/yankay/data
这样运行效果是相同的,不通之处在于我使用了blowfish算法作为Scp的密匙算法,使用这个算法可以比默认的情况快很多。单单对与scp,使用了blowfish 吞吐量是62MB/s,不使用只有46MB/s。
性能分析
我们先定义几个变量
- 压缩工具的压缩比是 CompressRadio
- 压缩工具的压缩吞吐是CompressSpeed MB/s
- 网络传输的吞吐是 NetSpeed MB/s
由于使用了管道,管道的性能取决于管道中最慢的部分的性能,所以整体的性能是:
当压缩吞吐较网络传输慢的时候,压缩是瓶颈;但网络较慢的时候,网络传输/吞吐 是瓶颈。
根据现有的测试数据(纯文本),可以得到表格:
可以看出来。在千兆网卡下,使用QuickLZ作为压缩算法,可以达到最高的性能。如果使用SSH作为数据传输通道,则远远没有达到网卡可以达到的最佳性能。在百兆网卡的情况下,各个算法相近。对比下来QuickLZ是有优势的。
对于不同的数据和不同的机器,可以得出不同的最佳压缩算法。但有一点是肯定的,尽量把瓶颈压在网络上。对于较慢的网络环境,高压缩比的算法会比较有优势;相反对于较快的网络环境,低压缩比的算法会更好。
结论
根据上面的分析结果,我们不能是用SSH作为网络传输通道,可以使用NC这个基本网络工具,提高性能。同时使用qpress作为压缩算法。
scp /usr/bin/qpress yankay01:/usr/bin/qpressssh yankay01 "nc -l 12345 | qpress -dio > /home/yankay/data" &qpress -o /home/yankay/data |nc yankay01 12345
第一行是将gpress安装到远程机器上,第二行在远程机器上使用nc监听一个端口,第三行压缩并传送数据。
执行上面的命令需要2.8s。平均吞吐量为402MB/s,比使用Gzip+Scp快了16倍!!
根据上文的公式,和自己的数据,可以绘出上面的表格,就可以选择出最适合的压缩算法和传输方式。达到满意的效果。如果是一个长期运行的脚本的话,这么做是值得的。
- 大文件传输... nc很牛啊
- 大文件传输
- 用nc命令来进行文件传输
- 用nc命令来进行文件传输
- 大文件传输方法比较
- 大文件传输方法比较
- 大文件传输_ PlaceHolder
- 服务器间大文件传输
- webservice大文件传输
- Linux大文件传输
- webservice大文件传输
- Linux大文件传输
- [转载]Linux大文件传输
- Linux大文件传输(转)
- Qt210 大文件传输错误
- MFC大文件传输
- TCP大文件传输
- C++大文件传输
- FineReport报表爱好者论坛金币兑换活动第一期粉墨登场
- 监控SQL Server 的运行状况
- python打印log调试信息的方法
- SqlServer数据库作业执行dtsx包出错
- sqlserver 查看数据库正在执行的命令
- 大文件传输... nc很牛啊
- 1
- 查询优化:实现500万以上的数据查询分页在3秒以内
- 如何在网页上显示一个钟表
- js中cloneNode()的使用
- 深入理解C语言指针的奥秘
- 鼠标动态改变表格样式
- 新浪微博API friendships/show的Java实现
- 凯迪拉克5月软文-V设计