仓酷云
标题:
Linux编程:Linux年夜文件传输仓酷云
[打印本页]
作者:
莫相离
时间:
2015-1-18 11:28
标题:
Linux编程:Linux年夜文件传输仓酷云
如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
我们常常必要在呆板之间传输文件。好比备份,复制数据等等。这个是很罕见,也是很复杂的。用scp大概rsync就可以很好的完成义务。可是假如文件很年夜,必要占用一些传输工夫的时分,如何又快又好地完成义务就很主要了。在我的测试用例中,一个最好的计划比最差的计划,功能进步了10倍。
复制文件
假如我们是复制一个
未紧缩
的文件。这里走以下步骤:
紧缩数据
发送到别的一台呆板上
数据解紧缩
校验准确性
如许做会很无效率,数据紧缩后能够更无效的使用带宽
利用ZIP+SCP
我们能够经由过程ZIP+SCP的组合完成这个功效。
gzip-c/home/yankay/data|sshyankay01"gunzip-c->/home/yankay/data"
复制代码
这条命令是将/home/yankay/data经由GZIP紧缩,经由过程ssh传输到yankay01的呆板上。
data文件的巨细是1.1GB,经由Zip紧缩后是183MB,实行下面的命令必要45.6s。均匀吞吐量为24.7MB/s
我们会发明Scp也有紧缩功效,以是下面的语句能够写成
scp-C-cblowfish/home/yankay/datayankay01:/home/yankay/data
复制代码
如许运转效果是不异的,欠亨的地方在于我利用了blowfish算法作为Scp的密匙算法,利用这个算法能够比默许的情形快良多。单单对与scp,利用了blowfish吞吐量是62MB/s,不利用只要46MB/s。
但是我实行下面一条命令的时分,发明仍是必要45s。均匀吞吐量还为24MB/s。没有涓滴的提拔,可见瓶颈不在收集上。
那瓶颈在那里呢?
功能剖析
我们先界说几个变量
紧缩工具的紧缩比是CompressRadio
紧缩工具的紧缩吞吐是CompressSpeedMB/s
收集传输的吞吐是NetSpeedMB/s
因为利用了管道,管道的功能取决于管道中最慢的部分的功能,以是全体的功能是:
speed=min(NetSpeed/CompressRadio,CompressSpeed)
当紧缩吞吐较收集传输慢的时分,紧缩是瓶颈;但收集较慢的时分,收集传输/吞吐是瓶颈。
依据现有的测试数据(纯文本),能够失掉表格:
紧缩比吞吐量千兆网卡(100MB/s)吞吐量千兆网卡吞吐量,基于ssh(62MB/s)百兆网卡(10MB/s)吞吐量ZLIB35.80%9.69.69.69.6LZO54.40%101.7101.7101.718.38235294LIBLZF54.60%134.3134.3113.553113618.31501832QUICKLZ54.90%183.4182.1493625112.932604718.21493625FASTLZ56.20%134.4134.4110.320284717.79359431SNAPPY59.80%189167.2240803103.678929816.72240803NONE100%3001006210
能够看出来。在千兆网卡下,利用QuickLZ作为紧缩算法,能够到达最高的功能。假如利用SSH作为数据传输通道,则远远没有到达网卡能够到达的最好功能。在百兆网卡的情形下,各个算法邻近。对照上去QuickLZ是有上风的。
关于分歧的数据和分歧的呆板,能够得出分歧的最好紧缩算法。但有一点是一定的,只管把瓶颈压在收集上。关于较慢的收集情况,高紧缩比的算法会对照有上风;相否决于较快的收集情况,高压缩比的算法会更好。
结论
依据下面的剖析了局,我们不克不及是用SSH作为收集传输通道,可使用NC这个基础收集工具,进步功能。同时利用qpress作为紧缩算法。
scp/usr/bin/qpressyankay01:/usr/bin/qpresssshyankay01"nc-l12345|qpress-dio>/home/yankay/data"&qpress-o/home/yankay/data|ncyankay0112345
复制代码
第一行是将gpress安装到远程呆板上,第二行在远程呆板上利用nc监听一个端口,第三行紧缩并传送数据。
实行下面的命令必要2.8s。均匀吞吐量为402MB/s,比利用Gzip+Scp快了16倍!!
依据上文的公式,和本人的数据,能够绘出下面的表格,就能够选择出最合适的紧缩算法和传输体例。到达中意的效果。假如是一个临时运转的剧本的话,这么做是值得的。
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。
作者:
分手快乐
时间:
2015-1-21 07:36
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
作者:
再现理想
时间:
2015-1-21 12:19
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
作者:
小魔女
时间:
2015-1-24 19:46
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
作者:
只想知道
时间:
2015-2-2 12:44
甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。
作者:
变相怪杰
时间:
2015-2-4 13:14
通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
作者:
飘灵儿
时间:
2015-2-8 12:24
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
作者:
兰色精灵
时间:
2015-2-25 11:46
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
作者:
蒙在股里
时间:
2015-3-7 20:09
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
作者:
飘飘悠悠
时间:
2015-3-8 15:09
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
作者:
第二个灵魂
时间:
2015-3-11 12:37
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
作者:
谁可相欹
时间:
2015-3-13 11:07
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者:
冷月葬花魂
时间:
2015-3-18 11:03
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
作者:
活着的死人
时间:
2015-3-25 18:10
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2