永发信息网

如何提高rsync同步效率

答案:1  悬赏:80  手机版
解决时间 2021-04-02 20:37
如何提高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同步.这样就可以保证有很高的同步速度,又能使丢失文件的风险控制在一小时之内.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
红红写了38个大字,强强比红红少写了16个。明
为什么老虎被成为百兽之王,而不是其它动物
车辆违章31分怎么处理
常见的产品认证有哪些
最终幻想6怎么收影忍
跪求下载Tarloy swift出道后的所有的歌曲o(≧
从双涧到合肥多长时间
电脑散热铝板,具体用什么材料好?
玩GTA5必须下载ifruit吗?
《感恩的心》改写歌词(悬赏100)
我想买开口银戒指,还需要量尺寸吗
姓问 请帮忙男孩起个什么名字
挖苦心机很重的人的说说
求六角外螺纹接头(如图)的AutoCAD图形,最
7.8KG大约多少?体积?是不是比9.8KG容量小?
推荐资讯
深新股额1000股是什么意思对我有没有影响要不
推荐自己孩子怎么写?
公车上一个孕妇竟然让我给她让座,她还有没有
300瓦的音箱需要多大的功放。谢谢
现在以知苯酚100克,求甲醛氢氧化钠和水各多
手机昨晚明明还有很多电,但是第二天一早起来
周学道看看自己身上 绯袍锦带何等辉煌 写出了
华为Y52代手机多少钱
银行转账冲正什么意思
甲乙两辆汽车同时从相距630km的两地相对开出
People living on parts of the south coast
诛仙2虎魄冰晶和龟灵冰晶
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?