rsync的几种优化应用方案[2010-04-13 11:10:14]
--------------------------------------------------------------------------------
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同步。这样就可以保证有很高的同步速度,又能使丢失文件的风险控制在一小时之内。
--------------------------------------------------------------------------------
分享到:
相关推荐
总的来说,这个Java实现的rsync算法项目为二进制文件的差异比较提供了一个高效且灵活的解决方案,无论是在本地还是远程系统间,都能有效减少数据传输的需求,提高工作效率。通过深入理解和优化这个项目,开发者可以...
"inotify+rsync实时远程同步包"便是解决这一问题的一种高效方案,它在SERVICE05等服务中得到了广泛的应用。本文将深入探讨inotify和rsync这两个工具,以及它们如何协同工作实现文件系统的实时远程同步。 首先,让...
10.5 几种典型应用对系统资源使用的特点 10.5.1 以静态内容为主的Web应用 10.5.2 以动态内容为主的Web应用 10.5.3 数据库应用 10.5.4 软件下载应用 10.5.5 流媒体服务应用 10.6 Linux下常见的性能分析...
本文将详细介绍一种基于`sersync`的同步方案,以及该方案相较于其他常见工具(如`inotify`)的优势,并提供具体的配置步骤。 #### 二、sersync简介及优势 `sersync`是一款专门为Linux系统设计的高效文件同步工具,...
在这部分内容中提到了几种常见的分布式存储方案,并对它们的特性进行了对比,例如支持文件附加属性、去重性以及所支持的编程语言。这一点可以帮助读者根据自身需求,对比各个方案的优劣。 3. FastDFS介绍: FastDFS...
DiffInstallApp旨在解决这个问题,通过提供一种机制,用户只需要下载应用更新的部分,而不是整个新版本,从而显著减少数据消耗和安装时间。 该项目的核心思想基于文件差异对比和增量更新技术。它分析两个应用版本...
在Android开发中,增量升级是一种优化用户更新应用的方式,它只传输自上次更新以来发生变化的文件,而不是整个APK,从而显著减少下载时间并节省用户的流量。本文将深入探讨Android增量升级的实现机制,以及如何生成...
总的来说,Android增量包生成是优化应用更新流程的重要手段,它能够提升用户体验,降低网络资源的消耗,同时也减轻了服务器的负载。通过熟练掌握增量包的生成技术和工具,开发者可以更高效地管理和分发应用的更新。
在Apache集群中,有几种常见的部署模式,包括负载均衡、故障转移和缓存共享等。负载均衡是通过分散用户请求到不同的服务器来避免单点过载,通常可以使用软件负载均衡器如mod_proxy_balancer模块来实现。故障转移则是...
在企业级搜索引擎方案的选择中,考虑到不同的技术路线和技术成熟度,通常会有几种不同的方案可供选择。本文档提到的主要关注于以下几种方案: 1. **基于Lucene自行封装实现站内搜索**:这种方案虽然可行,但存在较...
`uptime`, `top`, `vmstat`, `mpstat`, `htop`等)、内存监控(`free -m`)、硬盘监控(`df -h`, `iotop`)、网络监控(`iftop`, `netstat`, `ss`)以及应用服务监控(如NFS、MySQL、Nginx、Apache、PHP、rsync等)...
结合“properly61r”,这可能是开发人员为了优化文件同步流程而提出的一种方法。"61r"可能指的是某种特定的优化策略或者版本号。具体而言,它可能包括以下几点: 1. **优化同步算法**:可能采用了更高效的文件差异...
在MySQL备份中,通常有以下几种方法: 1. **全量备份**:这是最基础的备份方式,它会复制数据库的所有数据和结构。在我们的例子中,`mysql_backup.sh`脚本可能就是执行这样的操作,通过mysqldump工具将整个数据库或...
在衡量算法性能时,R3系统可以最小化delta文件的大小,与传统的增量编程技术相比,如Rsync,RMTD,Zephyr/Hermes,和R2等,R3可以达到50%-99%的传输量减少。 其次,R3系统中的R3sim算法通过优化二进制代码格式,...
本部分涉及Nginx服务器、Rsync同步服务器、Tomcat/Resin JAVA服务器等的安装与配置,以及相关的优化策略。 - **Nginx服务器**: - 安装配置: 包括基本的安装步骤和配置文件调整。 - 虚拟主机配置: 实现一个服务器...
综上所述,《基于云计算企业文档一致性方法的研究》一文提出的基于锁的拷贝-修改-合并机制结合改进的Rsync算法,为解决云计算环境下多用户并发访问导致的文档一致性问题提供了一种可行的解决方案。通过引入版本控制...
Linux是世界上最受欢迎的开源操作系统之一,它为个人用户、企业乃至科研机构提供了强大的服务器平台、桌面环境以及嵌入式系统解决方案。"Linux学习资源+上机答案"这一压缩包文件显然是针对想要深入学习Linux的人群...
因此,基于Linux的网络数据备份系统提供了一种经济、高效且灵活的解决方案。 本文主要介绍了如何构建这样的备份系统,充分利用现有的Linux服务器资源,实现免费、集中化的异步数据备份。这种方法降低了成本,同时...
Linux作为一种开放源代码、稳定且功能强大的操作系统,被广泛应用于服务器、网络设备以及各类嵌入式系统。通过学习本章内容,你将提升自己的Linux系统管理技能,为成为一名合格的网络系统管理员打下坚实基础。 第八...
- **rsync**:是一种高效的文件同步工具,常用于备份或同步文件。它只传输两个文件差异部分,大大减少了传输量。 - **crontab**:用于设置周期性任务调度,可以用来定时执行脚本、命令等操作。 - **自动化部署**:...