rsync的几种优化应用方案

转载 2015年07月20日 17:14:53

http://www.chinaitlab.com/linux/administer/802573.html

  rsync是用来做文件同步的一个很好的工具,传统的rsync就是使两个目录的文件保持一致,但随着文件数量增多,rsync会造成同步缓慢,系统负载比较高,直至系统死机。

  为了解决文件增多导致rsync变慢的问题,方案是很多的。

  1、使源目录保存较少文件

  这是一个传统优化办法,因为rsync虽然是同步所有文件,但和同步最近更新的文件是一个道理,因此将源服务器上的目录删除,仅仅保持最近更新的文件,文件数量就变得不但很少,而且是稳定的,随着时间推移,这数量也不会涨得很快。但这样做有个缺点,就是rsync不能使用删除模式,如果有文件要删除,可以将其弄成空文件,假如有更严格要求,可以另一个程序来删除。

  2、使用/dev/shm内存分区

  在源目录保持较少文件的前提下,将文件不存在硬盘上而放入内存,就可以避免系统IO带来的问题,但是这个内存分区在系统reboot后会丢掉所有数据,虽然并不常常需要reboot,但是其中的风险也需要计算清楚。

  3、使用推送方式

  因为性能问题是出现在rsync的客户端,用生产服务器抓取源服务器的话,性能问题就会出现在生产服务器上,这当然不很妥当。假如在生产服务器上使用 rsync daemon,源服务器执行rsync命令将文件推送到生产服务器上,性能问题就转移到了源服务器上,这在一定程度可以保证生产服务器的稳定性。

  4、仅用一台作同步比较

  假如源服务器的文件要被同步到很多台生产服务器,那么会出现rsync并发。可以分析到这些生产服务器在同一时刻文件是一致的,因此每台机都和源服务器做一次比较就是浪费的。这时可以让源服务器和生产服务器同步一次,并且使用-v参数打印出log,其它生产服务器通过同步这个log记录的文件就可以避免数次比较过程。

  5、使用inotify

  inotify就不是rsync了,inotify是一个守护进程,它可以监控到文件目录下的文件变动情况,根据其输出然后用rsync做文件传输,就可以减掉文件比较这个环节。inotify使用并不复杂,对文件变更情况的监控是实时的,也不消耗很多性能。

  6、双路同步

  以上均是对rsync性能方面做优化,但是优化也会带来问题。在3、4、5号方案中,假如生产服务器有一台机器因为负载或其它问题reboot了,在 reboot过程中同步就失败了,这部分失败的文件假如没有其它处理,就永远不会再同步到生产服务器上。这时可以使用多一路rsync来处理,譬如使用 inotify,做到了实时同步,然后再每小时进行一次完整的rsync同步。这样就可以保证有很高的同步速度,又能使丢失文件的风险控制在一小时之内。


相关文章推荐

linux命令之rsync同步速度分析

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。 它的特性如下: ...

scp和rsync哪个快?

scp rsync

rsync的使用

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。在上一次系统附件迁...

Rsync添加进程锁,防止重复进程

转自: http://pakey.net/blog/rsync-lock.html 在很多人用crontab执行rsync脚本同步时会出现一个进程没有跑完,就会起另外一个进程,等于是脚本重复在跑,...

Rsync 原理解析

Sync Algorithm: RSync vs. RDC   数据同步(Sync)是很多网络应用需要 的解决的问题,比如文件镜像。这里就以文件同步为例,问题模型:网络中两个主机Hos...

谈谈文件增量同步算法:RSYNC和CDC

最近在研究文件的增量同步问题,着重研究了文件差异编码部分,因为这个其实是文件同步的核心。目前应用最广泛的当然是linux下的RSYNC算法,但是这个算法本身存在缺陷,就是当两个文件完全无关时,差异编码...
  • wjtxt
  • wjtxt
  • 2013年03月28日 15:18
  • 4840

rsync传输性能测试总结

http://mayulin.blog.51cto.com/1628315/635017 测试环境 1.1服务器硬件信息 1.2 服务器软件信息 1.3 Rsync所能...
  • bellwhl
  • bellwhl
  • 2013年02月05日 15:49
  • 650

rsync+inotify实现实时同步

1、数据同步: 1.数据同步: A服务器的一个目录同步到B服务器上的一个目录 方法是:可以在A服务器上把这个目录共享(如ftp,http等),然后B服务器上写shell脚本,用crontab做定...

Rsync的其他几个常见参数

问题:Rsync的其他几个常见参数 1 -z        –compress              compress file data during the transfer --compre...

找出linux服务器IO占用高的程序

http://blog.slogra.com/post-317.html    一台服务器比较性能无外乎内存、cpu使用率、IO使用率,把这3样优化好了,你服务器的负载就要小很多,当然网络情况不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rsync的几种优化应用方案
举报原因:
原因补充:

(最多只允许输入30个字)