前言

将文件从一台计算机同步或备份到另一台计算机的快速简便的方法是使用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】的更多相关文章

  1. 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 ...

  2. WordPress SEO ☞ WordPress网站终极优化指南

    原文地址:http://www.eastdesign.net/wordpress-seo/ 最新消息,东方设计学院 WordPress SEO 系列视频教程正在持续更新中,目前为了不至于让视频传播过于 ...

  3. [转帖]Java虚拟机(JVM)体系结构概述及各种性能参数优化总结

    Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知 ...

  4. fir.im Weekly - APP 性能监测优化 二三事

    每一个成功的 App,都拥有强大的性能体验.本期 fir.im Weekly 整理了微信读书.美团外卖. 天猫.美团点评技术团队的关于性能监测优化方面策略和工具的分享,一起来看看. 微信读书 iOS ...

  5. paip.提升性能---mysql 优化cpu多核以及lan性能的关系.

    paip.提升性能---mysql 优化cpu多核以及lan性能的关系. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:/ ...

  6. MyEclipse x.x各版本终极优化配置指南

    先说优化:随着myeclipse版本不断更新,其功能不断强大,更加智能及人性化,为开发人员提供了很多便利.提高了开发速度,但是也牺牲了性能,让很多机器配置稍差的开发人员头疼不已.其实我们平时常用的功能 ...

  7. php性能效率优化

    [size=5][color=Red]php性能效率优化[/color][/size] 最近在公司一边自学一边写PHP程序,由于公司对程序的运行效率要求很高,而自己又是个新手,一开始就注意程序的效率很 ...

  8. RSync实现文件备份同步,rsync服务器

    转自:http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是wi ...

  9. rsync命令详解、rsync用ssh隧道方式同步

    ● rsync格式安装命令 yum install -y rsync与scp的区别:scp复制为完全覆盖,rsync为增量同步,只同步修改过的数据.rsync命令格式如下: rsync 选项 源文件 ...

随机推荐

  1. 用Python查找数组中出现奇数次的那个数字

    有一个数组,其中的数都是以偶数次的形式出现,只有一个数出现的次数为奇数次,要求找出这个出现次数为奇数次的数. 集合+统计 解题思路 最简单能想到的,效率不高.利用集合的特性,通过 Python 的 s ...

  2. 高强度学习训练第十一天总结:Class文件结构(二)

    常量池 可以理解为Class文件之中的资源仓库,他是Class文件结构中与其他项目关联最多的数据类型,也是占用Class文件空间最大的数据项目之一 访问标志 在常量池结束后,紧接着的俩个字节代表访问标 ...

  3. Linux中vim编辑命令

    vim 功能 : 一个强大的文本编辑器   语法格式 :vim [ 选项 ] / 路径 / 文本文件名 命令格式: vi [ 选项 ] [ 文件名 ]   +num 打开某个文件直接跳转到 num 行 ...

  4. 《大话处理器》Cache一致性协议之MESI【转】

    转自:https://blog.csdn.net/muxiqingyang/article/details/6615199 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载 ...

  5. golang数据结构和算法之DoublyLinkedList双向链表

    双向链表比起单向链表, 多了一个向前指向的指针, 所以在增删查改时,要同时照顾到两个指针的指向. DoublyLinkedList.go package DoublyLinkedList //双向链表 ...

  6. 30.Java基础_接口_抽象类_具体类实现案例

    public interface SpeakEnglish { public abstract void speak(); } public abstract class Person { priva ...

  7. 谷歌浏览器安装JsonView插件

    可方便阅读json格式文件,参考https://www.jianshu.com/p/6ea9f2245f4d

  8. Jmeter-Question之“HTTPS请求”

    前面在Jmeter-Question中有提到若干问题,有时间呢,我也会进行继续编写随笔,梳理自己的知识,本篇呢,便来记Jmeter发送https请求的过程 内容大致与http://blog.csdn. ...

  9. tomcat快速入门

    简介 Tomcat 是什么 Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理 ...

  10. IntelliJ IDEA 创建动态的JavaWeb工程(五)

    1. 创建动态的web项目 如果创建项目后没有自动创建web文件夹,即没有自动创建 web.xml 及 index.jsp 文件,还可以通过IDEA编辑器中的File -- Project Struc ...