rsync性能终极优化【Optimize rsync performance】
前言
将文件从一台计算机同步或备份到另一台计算机的快速简便的方法是使用rsync。我将介绍通常用于备份数据的命令行选项,并显示一些选项以极大地将传输速度从大约20-25 MB / s加快到90 MB / s以上!
rsync的简短描述
rsync协议能够有效地在计算机之间同步文件。它仅通过传输更改的文件来完成此操作,除此之外,它还尝试仅传输本地文件和远程文件之间的差异,以进一步最小化传输的数据大小。
底层数据传输使用Secure Shell或 SSH保护,这增加了另一层计算开销来安全地加密数据,然后传输到远程服务器并再次对其解密。因为我大部分时间都在使用计量互联网连接,所以我在SSH中使用了最大可能的压缩率,这在本地和快速网络中使用rsync时会成为瓶颈。
使用的命令行参数说明
我的默认命令行参数,带有完整rsync手册页中的描述:
- -a:存档模式(等于-rlptgoD):递归,将符号链接复制为符号链接,保留权限,保留修改时间,保留组,保留所有者,保留设备文件和特殊文件
- -v:在传输过程中增加详细信息
- -u:跳过接收方上较新的文件
- -r:递归到目录
- --progress:显示传输过程中的进度
- --delete:从远程服务器中删除多余的文件
优化的rsync的性能
SSH的最大压缩(在我的配置中默认使用)对带宽较小的计量连接很有帮助,在这种情况下,您可以从减少的数据量中节省时间。在本地快速网络中,这实际上是瓶颈,并且在SSH命令的100%CPU使用率中体现出来。在这种快速的本地网络中,无需进行任何压缩即可直接传输文件,因为压缩和解压缩会比仅传输普通文件花费更长的时间。
为此,可以使用以下选项来加速本地网络中的数据传输:
- -T:在目标上的可行伪tty分配
- -c aes128-ctr:选择一个较弱但较快的SSH加密。其他人指定arcfour,这将需要在目标主机上手动修改ssh_config。这并非总是可能的,并且这种加密对我来说效果很好。
- -x:禁用X11转发
- -o Compression = no:禁用上述SSH压缩瓶颈
- -z 选项也可能会降低性能,如果不通过慢速链接传输数据,则不应该使用它
- --inplace 原地替换,即不会生成临时文件, 不会有mv tmp target。
- --exclude-from或类似的排除您可能不需要的文件将减少时间,但不会增加传输速度。
-S
/--sparse
:将空序列变成稀疏块--partial
或者-P
是--partial --progress
:保存任何部分传输的文件以供将来恢复。注意:文件不会有临时名称,因此请确保在整个副本完成之前,没有其他期望使用目标的文件。--no-whole-file
这样需要重新发送的任何内容都会使用增量传输。读取部分传输的文件的一半通常比重新写入要快得多。--inplace
避免文件复制(但前提是在整个传输完成之前没有任何内容读取目标)- 为传输的不同部分运行rsync的多个实例可能会很有帮助
- -u 只传输增量文件
完整的命令将foo文件夹备份到 目标主机desthost上的远程文件夹栏,然后:
export RSYNC_RSH ="ssh -T -c aes128-ctr -o Compression = no -x"
rsync -avur --progress --delete foo desthost::bar
使用此命令,可以将传输速率从大约20-25 MB / s增加到90 MB/s以上!
参考说明:
1. 稀疏文件是一种计算机文件,它能尝试在文件内容大多为空时更有效率地使用文件系统的空间。它的原理是以简短的信息表示空数据块,而不是在在磁盘上占用实际空间来存储空数据块。只有真实的数据块会按原样写入磁盘。 在读取稀疏文件时,文件系统会按元数据在运行时将这些透明转换为“真实”的数据块,即填充为零。应用程序不会察觉这个转换。
rsync性能终极优化【Optimize rsync performance】的更多相关文章
- rsync配置及优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- WordPress SEO ☞ WordPress网站终极优化指南
原文地址:http://www.eastdesign.net/wordpress-seo/ 最新消息,东方设计学院 WordPress SEO 系列视频教程正在持续更新中,目前为了不至于让视频传播过于 ...
- [转帖]Java虚拟机(JVM)体系结构概述及各种性能参数优化总结
Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知 ...
- fir.im Weekly - APP 性能监测优化 二三事
每一个成功的 App,都拥有强大的性能体验.本期 fir.im Weekly 整理了微信读书.美团外卖. 天猫.美团点评技术团队的关于性能监测优化方面策略和工具的分享,一起来看看. 微信读书 iOS ...
- paip.提升性能---mysql 优化cpu多核以及lan性能的关系.
paip.提升性能---mysql 优化cpu多核以及lan性能的关系. 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:/ ...
- MyEclipse x.x各版本终极优化配置指南
先说优化:随着myeclipse版本不断更新,其功能不断强大,更加智能及人性化,为开发人员提供了很多便利.提高了开发速度,但是也牺牲了性能,让很多机器配置稍差的开发人员头疼不已.其实我们平时常用的功能 ...
- php性能效率优化
[size=5][color=Red]php性能效率优化[/color][/size] 最近在公司一边自学一边写PHP程序,由于公司对程序的运行效率要求很高,而自己又是个新手,一开始就注意程序的效率很 ...
- RSync实现文件备份同步,rsync服务器
转自:http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是wi ...
- rsync命令详解、rsync用ssh隧道方式同步
● rsync格式安装命令 yum install -y rsync与scp的区别:scp复制为完全覆盖,rsync为增量同步,只同步修改过的数据.rsync命令格式如下: rsync 选项 源文件 ...
随机推荐
- 合格的施工图是如何绘制的?必须要get这四点,大多数人都不知道
对于工程设计师来说加班通宵赶图改图是常有的事情,如何绘制一套合格的施工图?这是很多工程设计师都会问的问题. 绘制一套合格的施工图,你需要注意以下四点: 一.明确施工图的作用和目的 1. 工程设计的细化 ...
- 再来五道剑指offer题目
再来五道剑指offer题目 6.旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4, ...
- 【面试突击】-RabbitMQ常见面试题(一)
rabbit面试题1.什么是rabbitmq采用AMQP高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦 2.为什么要使用rabbitmq1.在分 ...
- 微信语音短消息amr文件转WAV
- amr说明 - 转WAV程序 我对SILK编码库稍作修改,编译了一个Windows下可直接将SILK V3编码转换为WAV格式,并支持原生的微信语音短消息amr文件的版本,提供给大家使用,压缩包( ...
- linux远程桌面连接 VNC Server
更新源 # sudo apt-get update 安装vnc4server # sudo apt-get install vnc4server 修改vnc远程连接密码 # vncpasswd 编辑v ...
- REST API的使用
需求描述 GET: http://localhost:8080/MyWebsite/user/ Header: Content-Type = application/json Body: 空 Resp ...
- PHP接口自动化测试框架实现
在上一份工作中,我有一部分工作是在维护一套接口自动化测试,这一篇文章,我来介绍这套接口自动化框架的设计思路. 我们来看一个简单的PHP实现的超简单的接口. ... //报名验证 private fun ...
- Python—基本数据类型
核心数据类型: 数字(int整型.float浮点型.complex复数.bool布尔型) 字符串 str 列表(List) 元组(Tuple) 字典(Dictionary) 集合() 数字 整数,浮点 ...
- layer重复弹出(layui弹层同时存在多个)的解决方法
layer.open() 同时存在多个;解决 layui 弹层 layer 同时存在多个页面层(iframe)的问题 这个问题其实是疏忽了一些 基础参数(仔细看文档,仔细看文档,仔细看文档) 一.ty ...
- Shell命令-用户用户组管理之userdel、groupadd
文件及内容处理 - userdel.groupadd 1. userdel:删除用户 userdel命令的功能说明 userdel 命令用于删除用户帐号.userdel 可删除用户帐号与相关的文件.若 ...