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同步。这样就可以保证有很高的同步速度,又能使丢失文件的风险控制在一小时之内。


rsync , rsync + ssh, rsync + lsyncd 多种同步方案与比较

1. 利用 ssh+rsync  只需要在服务器端打开 ssh 服务, 并启动 xinetd 中 rsync 服务则可使用  a. 增量同步   rsync -av /src-dir/.  use...
  • nerissa
  • nerissa
  • 2013年11月14日 16:54
  • 1303

rsync脚本优化,以及遇到的些问题

服务器的gs会每分钟生成一个日志,最后有一个5分钟的定时任务,将符合条件的日志汇总成一个文件,然后通过rsync传送过去。 台湾版本由于网络问题,存在一些漏报和重复的问题。 网络问题主要有丢包(pin...
  • eclipse_c
  • eclipse_c
  • 2017年12月21日 18:31
  • 26

linux命令之rsync同步速度分析

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

线上应用故障排查之一:高CPU占用

列进程信息: top ps aux | grep PID 显示线程类表: ps -mp pid -o THREAD,tid,time 将某线程ID转换为16进制格式: printf "%x\n" ...
  • jason5186
  • jason5186
  • 2014年12月31日 09:44
  • 2020

详解rsync算法--如何减少同步文件时的网络传输量

先看下图中的场景,客户端A和B,以及服务器server都保存了同一个文件,最初,A、B和server上的文件内容都是相同的(记为File.1)。某一时刻,B修改了文件内容,上传到SERVER上(记为F...
  • russell_tao
  • russell_tao
  • 2012年02月28日 17:02
  • 31296

linux 下取进程占用 cpu/内存 最高的前10个进程

# Linux 下 取进程占用 cpu 最高的前10个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 ...
  • xuxile
  • xuxile
  • 2016年11月24日 12:51
  • 1155

Rsync数据同步工具应用指南

rsync 同步服务器与客户端配置 ###########服务器段配置############ 1.系统版本 #cat /etc/redhat-release  CentOS Linux re...
  • Dexter_Wang
  • Dexter_Wang
  • 2017年03月04日 15:37
  • 514

rsync 远程同步文件的两种方式

rsync 远程同步文件 Posted on 23 二月, 2014 in linux   rsync 有两种工作方式,  这里用的是“方式”这个词,而不是“模式”。注意区分。   ...
  • dabao1989
  • dabao1989
  • 2015年02月11日 11:13
  • 10283

rsync 的工作原理和应用实例

rsync 2种登录认证协议 rsync 命令来同步系统文件之前要先登录remote 主机认证,认证过程中用到的协议有2种:ssh 协议和rsync协议 1. ssh 认证协议 rsync   s...
  • caoshuming_500
  • caoshuming_500
  • 2014年04月03日 16:11
  • 12692

通过 rsync sersync 实现高效的数据实时同步架构

企业级案例:通过 rsync sersync 实现高效的数据实时同步架构 Sersync的介绍 sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify ...
  • xiezhongtian
  • xiezhongtian
  • 2017年08月07日 17:33
  • 482
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rsync的几种优化应用方案
举报原因:
原因补充:

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