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秒,刷新缓存的策略在活动中优惠券被秒杀一空 下架前,短暂的时间内仍能够查询到 这个活动架构中采用 ...
- 【性能测试】性能测试总结<三>
常见性能测试工具: 性能测试工具,从理论上来讲在性能测试过程中使用到的所有工具都可以称其为性能测试工具,通常分为以下几类: 说明: 服务器端性能测试工具:需要支持产生压力和负载,录制和生成脚本,设置和 ...
随机推荐
- 描述了say_hello函数的具体内容,调用zend_printf系统函数在php中打印字符串
下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构 ...
- WBS练习
我们把这次团队程序设计分成了6个模块,让每一个同学都能参与其中,然后让每一个人选一个自己喜欢的模块,最后数据库设计这个部分就大家一起来做. Everybody's task allocation is ...
- JavaScript的My97Date日期工具类的使用
开发人员最喜欢的事情就是有工具然后拿来直接使用(. ~ .) 使用截图: 1.设置input标签 2.根据其DEMO文件,引入,进行事件处理 3.效果如图 4.效果如图 代码: <!DOCTYP ...
- JBoss错误
jboss进程在启动时碰到Address already in use: JVM_Bind /0.0.0.0:8080错误. 这个错误的含义是8080端口被占用了. 解决方法: 方法1: 开始--运行 ...
- PHP json_decode 函数解析 json 结果为 NULL 的解决方法
在做网站 CMS 模块时,对于模块内容 content 字段,保存的是 json 格式的字符串,所以在后台进行模块内容的编辑操作 ( 取出保存的数据 ) 时,需要用到 json_decode() 函数 ...
- mac 下 word 2011 使用笔记
1. 全屏预览,最大限度减少干扰 点击左下角焦点视图图标进入焦点视图. 调整为页面宽度或单页,点击顶部右侧百分比调整. 2.无格式粘贴 option + shift + command + v 3.无 ...
- Android 调用资源字符串的几种方法
在 Layout XML 调用字符串资源: <TextView android:layout_width="fill_parent" android:layout_heigh ...
- css实现文字过长省略显示
.simpleName { width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } <div cl ...
- 使用PHP获取网站Favicon的方法
使用PHP获取网站Favicon的方法 Jan022014 作者:Jerry Bendy 发布:2014-01-02 23:18 分类:PHP 阅读:4,357 views 20条评论 ...
- mysql 将null转代为0
mysql 将null转代为0 分类: Mysql2012-12-15 11:56 6447人阅读 评论(1) 收藏 举报 1.如果为空返回0 select ifnull(null,0) 2.如果为空 ...