测试环境

1.1服务器硬件信息

1.2 服务器软件信息

1.3 Rsync所能够支持的功能

(1)支持断点续传

(2)支持使用ssh传输加密

(3)支持128位MD4校验(3.0以后版本使用MD5加密)

(4)支持镜像

(5)支持限速

(6)支持目录层级递归拷贝

1.4常用Rsync参数详解

-a, --archive

It is a quick way of saying you want recursion and want to preserve almost everything.

-r, --recursive

This tells rsync to copy directories recursively.

-t, --times

This tells rsync to transfer modification times along with the files and update them on the remote system

-u, --update

This forces rsync to skip any files for which the destination file already exists and has a date later than the source file

-z, --compress

With this option, rsync compresses any data from the files that it sends to the destination machine

-P

断点续传 详细显示传输过程(传输进度)

-c, --checksum

This forces the sender to checksum all files using a 128-bit MD4 checksum before transfer

-n, --dry-run

This tells rsync to not do any file transfers, instead it will just report the actions it would have taken.

--delete

This tells rsync to delete any files on the receiving side that aren't on the sending side

--bwlimit=KBPS

This option allows you to specify a maximum transfer rate in kilobytes per second

--protocol

(隐藏参数)

选择传输时使用的TCP/IP协议字段号

-B

--block-size=SIZE checksum blocking size (default 700)

1.5服务器逻辑

两台服务器相邻,在同一个机房

1.6 rsync server模式配置

1、目标主机(DST)设置:

(1)添加rsyncd.conf配置文件

cat>/etc/rsyncd.conf<<EOF

uid=root

gid=root

secrets file = /etc/rsyncd.secrets

max connections=36000

use chroot=no

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

[rsyncDST]

path=/home/work/rsyncDST/share/1/0/

comment = rsync test

ignore errors = no

read only = no

hosts allow =10.0.101.241

hosts deny = *

EOF

(2)配置rsync.secrets认证文件

cat>/etc/rsyncd.secrets<<EOF

rsync:123456

EOF

(3)修改rsync.secrets认证文件权限

chmod 600 /etc/rsyncd.secrets

(4)启动rsync server

/usr/local/rsync/bin/rsync --daemon

Rsync传输测试

2.1初始化

(1)将两台机器加入监控

(2)将两台服务器建立SSH信任关系

2.2 传输压缩测试

1、SSH隧道加密传输,启用压缩,不启用数据校验

2、SSH隧道加密传输,未启用压缩,不启用数据校验

3、数据分析:

Rsync在传输时,不启用压缩,比启用压缩要快将近10倍

压缩使用的场合:低带宽,或对带宽有要求。传输文件压缩比率大

非压缩适用的场合:带宽充足,传输文件比较大,传输文件压缩比率小

建议不启用压缩

2.3 传输数据校验测试

1、SSH隧道加密传输,未启用压缩,不启用数据校验

2、SSH隧道加密传输,未启用压缩,启用数据校验

3、数据分析:

Rsync在传输时,启用数据校验,比不启用数据校验多耗时30%

文件校验使用的场合:对文件完整性要求高

非文件校验适用的场合:对文件完整性要求低

建议使用文件校验

2.4 传输方式测试

1、SSH隧道加密传输,未启用压缩,启用数据校验

2、rsync server传输,未启用压缩,启用数据校验

3、数据分析:

SSH隧道传输,速度比rsync server要快,但CPU资源消耗比较高,加密耗时较多

SSH隧道传输适用的场合:安全性要求比较高,对CPU资源消耗要求低

rsync server适用的场合:对安全性要求比较低,对CPU资源消耗要求高。

建议使用SSH加密隧道模式传输

2.5 其他影响传输速度的因素

1、SSH加密算法影响文件传输速度

注:以上文件传输测试过程中未启用压缩,未启用数据校验

使用SSH加密隧道传输时,如果希望数据传输较快,建议使用arcfour弱加密算法

2、修改TCP/IP协议字段,--protocol=29

(1)SSH隧道加密传输,未启用压缩,启用数据校验,不修改TCP/IP协议字段

(2)SSH隧道加密传输,未启用压缩,启用数据校验,修改TCP/IP协议字段为29

(3)数据分析:

修改TCP/IP协议字段,传输速度有了明显的提升。但是由于使用SSH加密隧道,程序运行耗时依旧很多。

建议修改TCP/IP协议字段为29

附: TCP/IP协议字段号

3、其他

rsync server模式,未启用压缩,启用数据校验,修改TCP/IP协议字段为29。

传输平均速度在120MB/S以上。传输耗时3m2.584s

rsync server模式,未启用压缩,未启用数据校验,修改TCP/IP协议字段为29。

传输平均速度在122MB/S以上。传输耗时2m14.185s

测试过程中,调节—block-size参数等于512,可以缩短checksum时间,总传输时间可节省大概3s左右

结 

根据当前生产环境,以及测试数据,我得出的结论如下:

1、 如果对数据安全性要求低,建议选择rsync server模式,未启用压缩,启用数据校验,修改TCP/IP协议字段号为29。

2、 如果对数据安全性要求高,建议选择SSH隧道加密传输,arcfour弱加密算法,未启用压缩,启用数据校验,修改TCP/IP协议字段号为29

3、 如果是第一次推送数据,建议加上-W参数,意思是不检查文件更新,直接传送整个文件,这样可以减少文件检测时间,节省程序总运行时间。

4、 如果想进一步节省程序运行时间,可在使用checksum的同时,加上—block-size=512这个参数(默认是700)。数值建议是500以上,并且是2的N次方,最大不超过2048。推荐512,1024,2048这三个值。

5、 在传输数据时,为了不影响线上正常业务,建议根据线上实际情况,通过—bwlimit=KPBS参数对带宽进行限制

rsync传输性能测试总结 转的更多相关文章

  1. 蓝牙BLE传输性能及延迟分析

    BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...

  2. JMeter基于http请求的web接口性能测试总结

    [本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...

  3. web性能优化-网络传输性能优化

    浏览器工作原理:https://www.cnblogs.com/thonrt/p/10008220.html 浏览器渲染原理: https://www.cnblogs.com/thonrt/p/100 ...

  4. 【性能测试】性能测试总结<四>

    性能测试常见指标        性能测试说白了就是通过工具模拟多个用户对被测系统进行访问.然后查看系统对于多个用户发来请求的处理能力. 左边的两个小人表示两个用户,向右边服务器发送请求,然后得到服务器 ...

  5. fswatch rsync配置使用 rsync 传输大量细小文件

    贴一个脚本这个脚本是rsync远程同步使用的一个脚本 rsync -avz --progress --exclude .git /Users/piperck/Desktop/gogogo/x pipe ...

  6. Rsync 传输不需要输入密码

    1.背景 1)        一个作为服务器端:VM3(IP: 3.9.8.151) 2)        一个作为客户端:VM2(IP: 3.9.8.157) 3)        服务器端和客户端网络 ...

  7. web平台大数据请求传输性能处理

    在XMLHttpRequest请求中使用ArrayBuffer方式,和后端服务器进行二进制的传输交互. 在项目中发现随着用户增长,部分前端功能,请求的数据量越来越大,传统的josn的方式,在下载.序列 ...

  8. jmeter性能测试总结

    一.性能测试问题记录: Ⅰ.秒杀的失败率了在96.45%,原因 Query对于 活动的秒杀采用的是0.5秒,刷新缓存的策略在活动中优惠券被秒杀一空 下架前,短暂的时间内仍能够查询到 这个活动架构中采用 ...

  9. 【性能测试】性能测试总结<三>

    常见性能测试工具: 性能测试工具,从理论上来讲在性能测试过程中使用到的所有工具都可以称其为性能测试工具,通常分为以下几类: 说明: 服务器端性能测试工具:需要支持产生压力和负载,录制和生成脚本,设置和 ...

随机推荐

  1. PHP对于Session漏洞的防范

    目前,基于PHP的网站开发已经成为目前网站开发的主流,本文笔者重点从PHP网站攻击与安全防范方面进行探究,旨在减少网站漏洞,希望对大家有所帮助! 一.常见PHP网站安全漏洞 对于PHP的漏洞,目前常见 ...

  2. activeform 配置

    <?php $form = ActiveForm::begin([ 'action' => ['/admin/admin/adminadd'], 'id' => 'login-for ...

  3. JavaScript系列:replace()函数(第二个参数为函数)

    语法 stringobject.replace(regexp/substr,replacement) 只讲解这个:参数replacement为函数时,这个参数函数的参数代表的意义,以及运行次数,及过程 ...

  4. maven仓库私服配置

    私服访问地址:[[http://192.168.1.252:9080/nexus/content/groups/public/ 地址]] 1. 打开eclipse/myeclipse的maven插件: ...

  5. [英语学习]国外的在线广播网站,类似喜马拉雅和荔枝FM

    今天在Seattle Art  Museum 网站上看东西,发现了这个好网站. 主要是外文资料,可以练听力,也可以找到<我爱吕西安>的英文版本. https://soundcloud.co ...

  6. sql like模糊查询

    1.SQL LIKE 子句中使用百分号(%)字符来表示任意字符,类似于UNIX或正则表达式中的星号 (*). 2.LIKE 通常与 % 一同使用,类似于一个元字符的搜索. 3. > SELECT ...

  7. Python装饰器与面向切面编程

    今天来讨论一下装饰器.装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数 ...

  8. P1018 乘积最大

    开始定义状态f[i][j][k]为[i,j)区间插入k个括号,使用记忆化搜索,但是成功爆栈,得到4个mle #include <bits/stdc++.h> using namespace ...

  9. 一 mybatis快速入门

    什么是MyBatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索. MyBatis可以使用简 ...

  10. 估值十亿美元、1.5亿用户,公司CEO却跑路了

    转载这篇文章是觉得配图非常好玩的,文章的真实性有待证明 年收益3600万美元的.曾经拥有高口碑产品的Evernote,却正在把一手好牌打烂,距离IPO越来越远,屡屡被业界唱衰. "独角兽公司 ...