莫相离 发表于 2015-1-18 11:28:01

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:40

说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?

再现理想 发表于 2015-1-21 12:19:54

在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。

小魔女 发表于 2015-1-24 19:46:27

这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?

只想知道 发表于 2015-2-2 12:44:04

甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。

变相怪杰 发表于 2015-2-4 13:14:51

通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。

飘灵儿 发表于 2015-2-8 12:24:50

清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。

兰色精灵 发表于 2015-2-25 11:46:11

当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。

蒙在股里 发表于 2015-3-7 20:09:12

熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。

飘飘悠悠 发表于 2015-3-8 15:09:54

尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.

第二个灵魂 发表于 2015-3-11 12:37:37

了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。

谁可相欹 发表于 2015-3-13 11:07:33

Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。

冷月葬花魂 发表于 2015-3-18 11:03:11

Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?

活着的死人 发表于 2015-3-25 18:10:05

了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
页: [1]
查看完整版本: Linux编程:Linux年夜文件传输仓酷云