rsync是制作文件同步的一个很好的工具。传统的rsync是保持一致的两目录的文件。但是随着文件数量的增加,将导致慢rsync同步,以及系统的负载比较高,直到系统崩溃。



为了解决文件数量的增加和rsync减缓问题的方案很多。



1。用更少的文件保存源目录



这是一个传统的优化方法,因为rsync是所有文件同步,但最近更新的文件同步是一个原因,所以在服务器上删除源目录,只保留最近更新的文件,文件的数量变得不仅很少,并且是稳定的,随着时间的推移,数对不会上升很快。但是有一个缺点。那是,rsync不能使用删除模式。如果有一个要删除的文件,它可以变成一个空文件。如果有更严格的要求,它可以被另一个程序删除。



2。使用内存分区



在源目录中保存文件较少,文件不存在于磁盘和内存中,系统可以避免与IO相关的问题,但重新启动后系统中的内存分区将丢失所有数据,虽然通常不需要重新引导,但风险显然需要计算。



三.使用推法



因为性能问题是rsync客户端。如果服务器是由生产服务器的性能问题抓起,将出现在生产服务器,这是不合适的。如果rsync守护进程用于生产服务器,源服务器执行rsync命令将文件到生产服务器的性能问题,并转移到源服务器,这可以保证生产服务器的稳定性有一定的影响。



4。只有一个用于同步比较



如果源服务器的文件同步到多个生产服务器,rsync并发会发生。它可以分析这些生产服务器在同一时间是一致的,所以它是与源服务器进行比较浪费每一台机器。在这个时候,源服务器和生产服务器同步在同一时间,和V参数用于打印日志。其他生产服务器可以通过同步日志记录的文件来避免多个比较进程。



5。使用inotify



Inotify是rsync。Inotify是一个守护进程。它可以监视文件目录中文件的变化。根据其输出然后使用rsync进行文件传输,可以减少文件比较,inotify的使用并不复杂,和文件变化的监测是实时的,不消耗大量的性能。



6,双路同步



以上是优化rsync的性能,但是优化也会带来问题。在计划的3, 4和5,如果生产服务器的机器,由于负载或其他问题,重新启动将在重启过程失败。如果没有其他的处理,失败的文件的部分不会被同步到生产服务器了。此时,你可以使用一个同步处理,如使用inotify,在真正的时间同步,然后进行一个完整的rsync同步每小时。这将确保有高速同步,和丢失的文件可以被控制在一个小时的风险。