Rsync速度测试对比
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Rsync速度测试对比
本文链接: /2009/02/21/rsync-test.html
因为一直对rsync的速度有疑问,所以昨天测试了一下.测试的环境为了1000M的网络..二天机器各接了一个存储.同步一个大的文件,所以大量的小问题不在考虑的范围.主要是速度测试.
对比的项目.
1.rsync使用ssh和不使用ssh时的速度分别(其实默认也是ssh).
2.使用NFS挂到本地,然后在本地rsync的速度和rsync对比
3.使用NFS挂到本地,然后cp到本地的速度来对比
4.加优化的参数对比
使用rsync的ssh的方法来传送文件,看看会不会慢很多
time rsync -avlR -e ssh
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy\@Silu.mkv 172.16.xxx.xxx:/data/
sending increm ental file list
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy@Silu.mkv
sent 4370744200 bytes received 31 bytes 19821969.30 bytes/sec
total size is 4370210591 speedup is 1.00
real 3m40.864s
user 1m36.867s
sys 0m37.546s
去掉ssh的选项来对比
time rsync
-avlR Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy\@Silu. mkv 172.16.xxx.xxx:/data
sending increm ental file list
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy@Silu.mkv
sent 4370744200 bytes received 31 bytes 19643794.30 bytes/sec
total size is 4370210591 speedup is 1.00
real 3m41.538s
user 1m37.270s
sys 0m37.984s
给nfs来mount到本地,使用rsync同步,看看是否会快些
time rsync
-avlR Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy\@Silu. mkv /data
sending incremental file list
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy@Silu.mkv
sent 4370744200 bytes received 31 bytes 19732479.60 bytes/sec
total size is 4370210591 speedup is 1.00
real 3m40.754s
user 0m28.250s
sys 0m22.297s
使用cp命令来测试
time cp
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy\@Silu.mkv / data/
real 3m41.571s
user 0m0.444s
sys 0m5.324s
加入size-only参数后对比
time rsync -avl
–size-only Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy\@ Silu.mkv 172.16.xxx.xxx:/data
sending increm ental file list
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy@Silu.mkv
sent 4370744200 bytes received 31 bytes 21799223.10 bytes/sec
total size is 4370210591 speedup is 1.00
real 3m20.962s
user 1m37.645s
sys 0m37.688s
加入blocking-io参数对比
time rsync -avl
–size-only –blocking-io Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM. DD51.Fanxy\@Silu.mkv 172.16.xxx.xxx:/data
sending increm ental file list
Pearl.Harbor.Blu-Ray.Remux.MPEG2.1080P.DTS.LPCM.DD51.Fanxy@Silu.mkv
sent 4370744200 bytes received 31 bytes 2xxx2973.19 bytes/sec
total size is 4370210591 speedup is 1.00
real 3m15.617s
user 1m37.587s
sys 0m37.793s
由上面可以看出来,使用nfs来mount和远程直接rsync速度没有分别,单线程的rsync都很快,打不满网络.如果是文件对比少的话,rsync和使用cp的时间基本一样.另外加入优化参数能提高rsync的速度,但是我不太明白blocking-io 表示什么意思,有达人知道,请告诉….
另外给大家放上我写的一个简单的perl程序来控制rsync多线程同步
#!/usr/bin/perl
my$path="/data";#本地目录
my$ip="172.16.xxx.xxx";#远程目录
my$maxchild=5;#同时并发的个数
open FILE,"ls $path|";
while()
{
chomp;
my$filename=$_;
my$i=1;
while($i<=1){
my$un=`ps -ef |grep rsync|grep -v grep |grep avl|wc -l`;
$i=$i+1;
if($un<$maxchild){
system("rsync -avl --size-only $path/$_ $ip:$path &");
}else{
sleep5;
$i=1;
}
}
}
rsync同步的多进程脚本
为了备份网站数据,服务器主机在电信线路,备份主机在移动线路。
单个连接的网速基本上就200kbps,可是rsync的客户端没办法同时启动多个连接进行同步,带宽利用不么10%。
参考了:/2009/02/21/rsync-test.html
用PHP改一改,在LINUX下测试OK,基于WINDOWS应该也可以。
启动多个连接进行同步,效率大大提高。
适合暴力解决互联互通问题
<?php
$dir='/var/www/';//要备份的本地文件夹
$remote_prefix="your.ip::dest //rsync主机的IP和目标
$local_prefix = "sub_folder"; //对应的子文件夹
$max_connect = 10; //最大的连接
$files = scandir($dir, 2);
array_pop($files);
array_pop($files);
//print_r($files);
while (true)
{
$i = shell_exec("ps agx|grep 'rsync -v $local_prefix'|wc -l"); echo "count:".$i."\n";
if ($i <= $max_connect)
{
$file_name = array_shift($files);
if(empty($file_name)) exit();
$file_name = $local_prefix.$file_name;
$cmd = "rsync -v $file_name$remote_prefix/$file_name-v -rlt --progress";
$file_name = str_replace('/', '_', $file_name);
$cmd .= ' >> '.$file_name.'.log &';
system("$cmd");
echo "count:$i exec:".$cmd."\n。