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 选项 源文件 ...
随机推荐
- Flask 教程 第二章:模板
本文翻译自 The Flask Mega-Tutorial Part II: Templates 在Flask Mega-Tutorial系列的第二部分中,我将讨论如何使用模板. 学习完第一章之后,你 ...
- Winform中双击DevExpress的TreeList的树形节点怎样获取当前节点
场景 DevExpress的TreeList怎样设置数据源,从实例入手: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10254 ...
- Java性能之synchronized锁的优化
synchronized / Lock 1.JDK 1.5之前,Java通过synchronized关键字来实现锁功能 synchronized是JVM实现的内置锁,锁的获取和释放都是由JVM隐式实现 ...
- crm-全总结
1.什么是crm 客户关系管理系统 ,以客户数据为中心建立一个信息收集.管理.分析和利用的信息系统 2.业务逻辑相关使用crm-app完成 1)路由项目分发到crm-app (别名 传参 命名空间) ...
- [转]Outlook VBA自动处理邮件
本文转自:https://blog.csdn.net/hnwyllmm/article/details/44874331 需求描述公司里面每天都会有很多邮件,三分之一都是不需要看的,Outlook的过 ...
- 【React Native】日常踩坑记录_以后将持续更新
作为一名有理想.有抱负的一代iOS程序员,本着“我头发够多,还能学”的原则,我选择了追随那些大佬的脚步,于2018年开始了React Native. 第一步:找文档.准备安装开发环境: 第二步:一步步 ...
- 记录C#-WPF线程中如何修改值
new Thread(() => { Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Acti ...
- mac上安装npm
检查brew -v是否安装了homebrew这个macOS 缺失的软件包的管理器.如果安装,跳转到第3步,否则跳转到第二步: 安装homebrew.安装跳转到官网指导.等待安装好之后,输入brew - ...
- Mysql—数据导入与导出
数据导入 作用:把文件系统里的内容导入到数据库表中. 语法: mysql> load data infile "文件名" into table 表名 fields termi ...
- 【cf995】F. Cowmpany Cowmpensation(拉格朗日插值)
传送门 题意: 给出一颗树,每个结点有取值范围\([1,D]\). 现在有限制条件:对于一个子树,根节点的取值要大于等于子数内各结点的取值. 问有多少种取值方案. 思路: 手画一下发现,对于一颗大小为 ...