前言

将文件从一台计算机同步或备份到另一台计算机的快速简便的方法是使用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. Java生鲜电商平台-API请求性能调优与性能监控

    Java生鲜电商平台-API请求性能调优与性能监控 背景 在做性能分析时,API的执行时间是一个显著的指标,这里使用SpringBoot AOP的方式,通过对接口添加简单注解的方式来打印API的执行时 ...

  2. Vue.js 源码分析(六) 基础篇 计算属性 computed 属性详解

    模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护,比如: <div id="example">{{ messag ...

  3. 开关VoLTE流程分析(一)

    开关按钮位置: 设置--> 更多--> 移动网络--> 增强型4G LTE模式 控件初始化addEnhanced4GLteSwitchPreference,该设置开关使用了Switc ...

  4. bayaim_linux_configure_oracle

    ---------------------------bayaim_linux_install_oracle_11g--2.0------------------------------------- ...

  5. SpringBoot Junit Demo

    package com.yunen.camera.test; import org.junit.Before; import org.junit.Test; import org.junit.runn ...

  6. linux so库方式

    gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so

  7. Linux shell 判断字符串为空等常用命令

    1.判断字符串为空 if [ -z "$str" ]; then echo "empty string" fi 2.判断文件是否存在 if [ -f /home ...

  8. Pwnable-collision

    一样的连接ssh,输入密码,查看文件 看看col.c的源码 #include <stdio.h> #include <string.h> unsigned long hashc ...

  9. mysql 高级查询二

    各种showshow columns from my_student;show grants for root;show aviables;show processlist;show table st ...

  10. window.location.href方式提交json数据

    ${ctx}/vehicleFlow/to_vehflow_detail.do?strJson="+encodeURIComponent(json)