rsync传输性能测试总结 转
测试环境
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传输性能测试总结 转的更多相关文章
- 蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...
- JMeter基于http请求的web接口性能测试总结
[本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...
- web性能优化-网络传输性能优化
浏览器工作原理:https://www.cnblogs.com/thonrt/p/10008220.html 浏览器渲染原理: https://www.cnblogs.com/thonrt/p/100 ...
- 【性能测试】性能测试总结<四>
性能测试常见指标 性能测试说白了就是通过工具模拟多个用户对被测系统进行访问.然后查看系统对于多个用户发来请求的处理能力. 左边的两个小人表示两个用户,向右边服务器发送请求,然后得到服务器 ...
- fswatch rsync配置使用 rsync 传输大量细小文件
贴一个脚本这个脚本是rsync远程同步使用的一个脚本 rsync -avz --progress --exclude .git /Users/piperck/Desktop/gogogo/x pipe ...
- Rsync 传输不需要输入密码
1.背景 1) 一个作为服务器端:VM3(IP: 3.9.8.151) 2) 一个作为客户端:VM2(IP: 3.9.8.157) 3) 服务器端和客户端网络 ...
- web平台大数据请求传输性能处理
在XMLHttpRequest请求中使用ArrayBuffer方式,和后端服务器进行二进制的传输交互. 在项目中发现随着用户增长,部分前端功能,请求的数据量越来越大,传统的josn的方式,在下载.序列 ...
- jmeter性能测试总结
一.性能测试问题记录: Ⅰ.秒杀的失败率了在96.45%,原因 Query对于 活动的秒杀采用的是0.5秒,刷新缓存的策略在活动中优惠券被秒杀一空 下架前,短暂的时间内仍能够查询到 这个活动架构中采用 ...
- 【性能测试】性能测试总结<三>
常见性能测试工具: 性能测试工具,从理论上来讲在性能测试过程中使用到的所有工具都可以称其为性能测试工具,通常分为以下几类: 说明: 服务器端性能测试工具:需要支持产生压力和负载,录制和生成脚本,设置和 ...
随机推荐
- 不用逗号进行UNION
./download.php ...if($link){ //加密后ID$link = base64_decode(urldecode($link));$link_array = explode ...
- 用户提交的cookie提交时为什么传不到服务器
cookie与session跨域登陆代码(ie6,ie7,firefox)frameset里面,也就是里面的frame是来自第三方站点(不同ip或不同域名),那么默认情况下ie会自动禁用这些站点的co ...
- [转]C#将image中的显示的图片转换成二进制
本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html .将Image图像文件存入到数据库中 我们知道数据库里的Im ...
- 《GK101任意波发生器》升级固件发布(版本:1.0.1build803)
一.固件说明: 硬件版本:0,logic.3 固件版本:1.0.1.build803 编译日期:2014-08-06 ====================================== 二. ...
- maven常用插件总结
maven本质上是一个插件框架,几乎所有的功能都是通过各种各样的插件来实现的.maven默认会依据项目类型自动把构建时的各阶段(Lifecycle和phase)自动绑定(Lifecycle Mappi ...
- Archlinux 简明安装指南
archlinux是在distrowatch里位于top 10的发行版中,唯一采用roll release的distribution. pacman和yaourt双剑合壁,使得在archlinux安装 ...
- DateTime Related Functions
string a = "to_date('" + dtpStart.Value.ToString("yyyy/MM/dd") + "', 'yyyy/ ...
- ajax+jsp自动刷新
通过 AJAX,JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信.通过这个对象, JavaScript 可在不重载页面的情况与 Web ...
- 关于优化sql查询的一个方法。
select * from gmvcsbase.base_file file,gmvcsbase.base_user user,gmvcsbase.base_department dep,gmvcsb ...
- Python学习笔记——1——基础知识
1.1.变量和算法 python语言很类似人类语言,变量不需要定义类型.比如: 整型 字符串类型 数组 Java int a=12 String s="test" String[] ...