rsync的几种优化应用方案

简介:

转自:http://www.ylmf.net/linux/tips/2010122417687.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同步。这样就可以保证有很高的同步速度,又能使丢失文件的风险控制在一小时之内。



本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/550452

相关文章
|
缓存 网络协议 5G
剖析KCP以及KCP在游戏中是如何使用的
剖析KCP以及KCP在游戏中是如何使用的
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
|
机器学习/深度学习 人工智能 缓存
极长序列、极快速度:面向新一代高效大语言模型的LASP序列并行
【4月更文挑战第26天】研究人员提出LASP,一种针对线性注意力机制的序列并行方法,解决了处理超长序列时GPU内存限制的问题。LASP利用点对点通信和内核融合优化,降低通信开销,提高GPU集群执行效率。在128个A100 GPU上,LASP能处理4096K长度的序列,比现有方法快8倍。虽然面临P2P通信需求高、环境适应性和特定机制依赖的挑战,但LASP为大型语言模型的效率和性能提供了新思路。[链接](https://arxiv.org/abs/2404.02882)
482 6
|
11月前
|
运维 数据可视化 安全
AR增强现实应用于工业4.0的5个案例研究
增强现实(AR)正重塑工业流程,通过实时可视化与数据叠加,提升效率、安全与质量。本文介绍AR在设备维护、汽车制造、质量控制及航空等领域的应用案例,展现其如何助力企业优化操作、减少错误并提升培训效果,推动智能化升级。
|
存储 数据采集 弹性计算
日志服务SLS入门指南
简述日志服务SLS及日志采集、信息脱敏和告警接入相关操作
|
缓存 UED
【计算巢】移动网络优化技巧:提升用户体验的关键
【6月更文挑战第1天】在数字化时代,移动网络已成为生活必需,但网络问题时常影响用户体验。本文探讨了移动网络优化技巧,包括理解网络基本原理、增强信号强度、避免网络拥堵及示例代码演示如何监听和管理网络状态。通过这些方法,可以提升网络效率和稳定性,优化用户体验。
776 2
【计算巢】移动网络优化技巧:提升用户体验的关键
|
网络协议 安全 网络虚拟化
"揭秘!网工爱不释手的Wireshark八大绝技,让复杂网络问题无所遁形,你掌握了吗?"
【8月更文挑战第19天】Wireshark是网络工程师不可或缺的工具,以其卓越的抓包与分析能力闻名,在网络故障排除、性能优化和安全审查方面作用显著。本文精选八大实用技巧,包括精准数据包过滤、序列号排序、时间格式调整、数据包解码、混杂模式使用、数据包标记与导出、自定义显示列以及过滤器的高效应用,助您在网络分析中得心应手,成为解决复杂问题的高手。
859 0
|
监控 Linux Shell
Linux系统中如何查看磁盘情况
【7月更文挑战第11天】在Linux中,`df -h`展示文件系统磁盘使用概览;`du -sh /path`估计特定目录的磁盘占用;`fdisk -l`列出磁盘分区详情;`lsblk`以树状展示块设备信息。这些命令帮助监控磁盘状态,适时管理空间。
1301 0
|
编解码 网络协议 程序员
【RTP 传输协议】实时视频传输的艺术:深入探索 RTP 协议及其在 C++ 中的实现
【RTP 传输协议】实时视频传输的艺术:深入探索 RTP 协议及其在 C++ 中的实现
2535 0